1412101716
2 2
12 libp3express 4 vDgf 12 panda3d.core 
1301
1457 12 ~ConfigFlags 0 4 2759 25 ConfigFlags::~ConfigFlags 0 0 0
32
ConfigFlags::~ConfigFlags(void);

1458 8 get_page 0 4 2758 27 ConfigDeclaration::get_page 0 1 1 297
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_page
//       Access: Public
//  Description: Returns the page on which this declaration can be
//               found.
////////////////////////////////////////////////////////////////////
59
inline ConfigPage *ConfigDeclaration::get_page(void) const;

1459 12 get_variable 0 4 2758 31 ConfigDeclaration::get_variable 0 1 2 395
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_variable
//       Access: Public
//  Description: Returns the variable that this declaration names.
//               This variable may or may not have been defined by the
//               time the declaration is read.
////////////////////////////////////////////////////////////////////
71
inline ConfigVariableCore *ConfigDeclaration::get_variable(void) const;

1460 16 get_string_value 0 4 2758 35 ConfigDeclaration::get_string_value 0 1 3 452
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_string_value
//       Access: Public
//  Description: Returns the value assigned to this variable.  This is
//               the original one-line text defined for the variable
//               in the .prc file (or passed to
//               ConfigPage::make_declaration()).
////////////////////////////////////////////////////////////////////
83
inline basic_string< char > const &ConfigDeclaration::get_string_value(void) const;

1461 16 set_string_value 0 4 2758 35 ConfigDeclaration::set_string_value 0 1 4 276
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::set_string_value
//       Access: Public
//  Description: Changes the value assigned to this variable.
////////////////////////////////////////////////////////////////////
83
inline void ConfigDeclaration::set_string_value(basic_string< char > const &value);

1462 13 get_num_words 0 4 2758 32 ConfigDeclaration::get_num_words 0 1 5 405
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_num_words
//       Access: Public
//  Description: Returns the number of words in the declaration's
//               value.  A word is defined as a sequence of
//               non-whitespace characters delimited by whitespace.
////////////////////////////////////////////////////////////////////
56
inline int ConfigDeclaration::get_num_words(void) const;

1463 15 has_string_word 0 4 2758 34 ConfigDeclaration::has_string_word 0 1 6 449
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_string_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               string value for the nth word.  This is really the
//               same thing as asking if there are at least n words in
//               the value.
////////////////////////////////////////////////////////////////////
60
inline bool ConfigDeclaration::has_string_word(int n) const;

1464 13 has_bool_word 0 4 2758 32 ConfigDeclaration::has_bool_word 0 1 7 329
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_bool_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               boolean value for the nth word.
////////////////////////////////////////////////////////////////////
58
inline bool ConfigDeclaration::has_bool_word(int n) const;

1465 12 has_int_word 0 4 2758 31 ConfigDeclaration::has_int_word 0 1 8 328
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_int_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               integer value for the nth word.
////////////////////////////////////////////////////////////////////
57
inline bool ConfigDeclaration::has_int_word(int n) const;

1466 14 has_int64_word 0 4 2758 33 ConfigDeclaration::has_int64_word 0 1 9 328
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_int64_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               int64 value for the nth word.
////////////////////////////////////////////////////////////////////
59
inline bool ConfigDeclaration::has_int64_word(int n) const;

1467 15 has_double_word 0 4 2758 34 ConfigDeclaration::has_double_word 0 1 10 331
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_double_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               integer value for the nth word.
////////////////////////////////////////////////////////////////////
60
inline bool ConfigDeclaration::has_double_word(int n) const;

1468 15 get_string_word 0 4 2758 34 ConfigDeclaration::get_string_word 0 1 11 404
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_string_word
//       Access: Public
//  Description: Returns the string value of the nth word of the
//               declaration's value, or empty string if there is no
//               nth value.  See also has_string_word().
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > ConfigDeclaration::get_string_word(int n) const;

1469 13 get_bool_word 0 4 2758 32 ConfigDeclaration::get_bool_word 0 1 12 394
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_bool_word
//       Access: Public
//  Description: Returns the boolean value of the nth word of the
//               declaration's value, or false if there is no nth
//               value.  See also has_bool_word().
////////////////////////////////////////////////////////////////////
58
inline bool ConfigDeclaration::get_bool_word(int n) const;

1470 12 get_int_word 0 4 2758 31 ConfigDeclaration::get_int_word 0 1 13 387
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_int_word
//       Access: Public
//  Description: Returns the integer value of the nth word of the
//               declaration's value, or 0 if there is no nth value.
//               See also has_int_word().
////////////////////////////////////////////////////////////////////
56
inline int ConfigDeclaration::get_int_word(int n) const;

1471 14 get_int64_word 0 4 2758 33 ConfigDeclaration::get_int64_word 0 1 14 389
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_int64_word
//       Access: Public
//  Description: Returns the int64 value of the nth word of the
//               declaration's value, or 0 if there is no nth value.
//               See also has_int64_word().
////////////////////////////////////////////////////////////////////
62
inline __int64 ConfigDeclaration::get_int64_word(int n) const;

1472 15 get_double_word 0 4 2758 34 ConfigDeclaration::get_double_word 0 1 15 393
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_double_word
//       Access: Public
//  Description: Returns the integer value of the nth word of the
//               declaration's value, or 0 if there is no nth value.
//               See also has_double_word().
////////////////////////////////////////////////////////////////////
62
inline double ConfigDeclaration::get_double_word(int n) const;

1473 15 set_string_word 0 4 2758 34 ConfigDeclaration::set_string_word 0 1 16 0
82
void ConfigDeclaration::set_string_word(int n, basic_string< char > const &value);

1474 13 set_bool_word 0 4 2758 32 ConfigDeclaration::set_bool_word 0 1 17 0
57
void ConfigDeclaration::set_bool_word(int n, bool value);

1475 12 set_int_word 0 4 2758 31 ConfigDeclaration::set_int_word 0 1 18 0
55
void ConfigDeclaration::set_int_word(int n, int value);

1476 14 set_int64_word 0 4 2758 33 ConfigDeclaration::set_int64_word 0 1 19 0
61
void ConfigDeclaration::set_int64_word(int n, __int64 value);

1477 15 set_double_word 0 4 2758 34 ConfigDeclaration::set_double_word 0 1 20 0
61
void ConfigDeclaration::set_double_word(int n, double value);

1478 12 get_decl_seq 0 4 2758 31 ConfigDeclaration::get_decl_seq 0 1 21 530
////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_decl_seq
//       Access: Public
//  Description: Returns the sequence number of the declaration within
//               the page.  Sequence numbers are assigned as each
//               declaration is created; each declaration is given a
//               higher sequence number than all the declarations
//               created in the page before it.
////////////////////////////////////////////////////////////////////
55
inline int ConfigDeclaration::get_decl_seq(void) const;

1479 6 output 0 4 2758 25 ConfigDeclaration::output 0 1 22 0
51
void ConfigDeclaration::output(ostream &out) const;

1480 5 write 0 4 2758 24 ConfigDeclaration::write 0 1 23 0
50
void ConfigDeclaration::write(ostream &out) const;

1481 16 get_default_page 0 4 2762 28 ConfigPage::get_default_page 0 1 24 0
54
static ConfigPage *ConfigPage::get_default_page(void);

1482 14 get_local_page 0 4 2762 26 ConfigPage::get_local_page 0 1 25 0
52
static ConfigPage *ConfigPage::get_local_page(void);

1483 8 get_name 0 4 2762 20 ConfigPage::get_name 0 1 26 338
////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_name
//       Access: Published
//  Description: Returns the name of the page.  If the page was loaded
//               from a .prc file, this is usually the filename.
////////////////////////////////////////////////////////////////////
68
inline basic_string< char > const &ConfigPage::get_name(void) const;

1484 10 is_special 0 4 2762 22 ConfigPage::is_special 0 1 27 517
////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::is_special
//       Access: Published
//  Description: Returns true if this is the special "default" or
//               "local" page, or false if it is an ordinary page,
//               e.g. an implicit page loaded from a prc file at
//               startup, or an explicit page created by
//               ConfigPageManager::make_explicit_page().
////////////////////////////////////////////////////////////////////
47
inline bool ConfigPage::is_special(void) const;

1485 11 is_implicit 0 4 2762 23 ConfigPage::is_implicit 0 1 28 437
////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::is_implicit
//       Access: Published
//  Description: Returns true if the page was loaded by implicitly
//               searching the config path on startup, or false if it
//               was explicitly loaded by dynamic code after initial
//               startup.
////////////////////////////////////////////////////////////////////
48
inline bool ConfigPage::is_implicit(void) const;

1486 8 set_sort 0 4 2762 20 ConfigPage::set_sort 0 1 29 0
36
void ConfigPage::set_sort(int sort);

1487 8 get_sort 0 4 2762 20 ConfigPage::get_sort 0 1 30 316
////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_sort
//       Access: Published
//  Description: Returns the explicit sort order of this particular
//               ConfigPage.  See set_sort().
////////////////////////////////////////////////////////////////////
44
inline int ConfigPage::get_sort(void) const;

1488 12 get_page_seq 0 4 2762 24 ConfigPage::get_page_seq 0 1 31 728
////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_page_seq
//       Access: Published
//  Description: Returns the sequence number of the page.  
//
//               Sequence numbers for a particular class (implicit
//               vs. explicit) of pages are assigned as each page is
//               loaded; each page is given a higher sequence number
//               than all the pages loaded before it.
//
//               The implicit_load pages, which are discovered in the
//               file system automatically, have a different set of
//               sequence numbers than the explicit pages.
////////////////////////////////////////////////////////////////////
48
inline int ConfigPage::get_page_seq(void) const;

1489 15 get_trust_level 0 4 2762 27 ConfigPage::get_trust_level 0 1 32 592
////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_trust_level
//       Access: Published
//  Description: Returns the trust level associated with this page.
//               An untrusted page is trust level 0; if the page was
//               loaded from a signed .prc file, its trust level is
//               the index number of the certificate that signed it.
//               Generally, a higher trust level value represents
//               a greater level of trust.
////////////////////////////////////////////////////////////////////
51
inline int ConfigPage::get_trust_level(void) const;

1490 15 set_trust_level 0 4 2762 27 ConfigPage::set_trust_level 0 1 33 456
////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::set_trust_level
//       Access: Published
//  Description: Explicitly sets the trust level on this particular
//               page.  Note that any subsequent changes to the page,
//               or to any variable declarations on it, will reset the
//               trust level to zero.
////////////////////////////////////////////////////////////////////
57
inline void ConfigPage::set_trust_level(int trust_level);

1491 13 get_signature 0 4 2762 25 ConfigPage::get_signature 0 1 34 399
////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_signature
//       Access: Published
//  Description: Returns the raw binary signature that was found in
//               the prc file, if any.  This method is probably not
//               terribly useful for most applications.
////////////////////////////////////////////////////////////////////
73
inline basic_string< char > const &ConfigPage::get_signature(void) const;

1492 5 clear 0 4 2762 17 ConfigPage::clear 0 1 35 0
29
void ConfigPage::clear(void);

1493 8 read_prc 0 4 2762 20 ConfigPage::read_prc 0 1 36 0
39
bool ConfigPage::read_prc(istream &in);

1494 18 read_encrypted_prc 0 4 2762 30 ConfigPage::read_encrypted_prc 0 1 37 0
87
bool ConfigPage::read_encrypted_prc(istream &in, basic_string< char > const &password);

1495 16 make_declaration 0 4 2762 28 ConfigPage::make_declaration 0 2 38 39 0
235
ConfigDeclaration *ConfigPage::make_declaration(basic_string< char > const &variable, basic_string< char > const &value);
ConfigDeclaration *ConfigPage::make_declaration(ConfigVariableCore *variable, basic_string< char > const &value);

1496 18 delete_declaration 0 4 2762 30 ConfigPage::delete_declaration 0 1 40 0
61
bool ConfigPage::delete_declaration(ConfigDeclaration *decl);

1497 20 get_num_declarations 0 4 2762 32 ConfigPage::get_num_declarations 0 1 41 0
49
int ConfigPage::get_num_declarations(void) const;

1498 15 get_declaration 0 4 2762 27 ConfigPage::get_declaration 0 1 42 0
66
ConfigDeclaration const *ConfigPage::get_declaration(int n) const;

1499 18 modify_declaration 0 4 2762 30 ConfigPage::modify_declaration 0 1 43 0
57
ConfigDeclaration *ConfigPage::modify_declaration(int n);

1500 17 get_variable_name 0 4 2762 29 ConfigPage::get_variable_name 0 1 44 0
64
basic_string< char > ConfigPage::get_variable_name(int n) const;

1501 16 get_string_value 0 4 2762 28 ConfigPage::get_string_value 0 1 45 0
63
basic_string< char > ConfigPage::get_string_value(int n) const;

1502 16 is_variable_used 0 4 2762 28 ConfigPage::is_variable_used 0 1 46 0
47
bool ConfigPage::is_variable_used(int n) const;

1503 6 output 0 4 2762 18 ConfigPage::output 0 1 47 0
44
void ConfigPage::output(ostream &out) const;

1504 22 output_brief_signature 0 4 2762 34 ConfigPage::output_brief_signature 0 1 48 0
60
void ConfigPage::output_brief_signature(ostream &out) const;

1505 5 write 0 4 2762 17 ConfigPage::write 0 1 49 0
43
void ConfigPage::write(ostream &out) const;

1506 21 loaded_implicit_pages 0 4 2763 40 ConfigPageManager::loaded_implicit_pages 0 1 50 908
// Filename: configPageManager.I
// Created by:  drose (15Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::loaded_implicit_pages
//       Access: Published
//  Description: Returns true if the implicit *.prc files have already
//               been loaded, false otherwise.  Normally this will
//               only be false briefly before startup.
////////////////////////////////////////////////////////////////////
65
inline bool ConfigPageManager::loaded_implicit_pages(void) const;

1507 19 load_implicit_pages 0 4 2763 38 ConfigPageManager::load_implicit_pages 0 1 51 536
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::load_implicit_pages
//       Access: Published
//  Description: Searches the PRC_DIR and/or PRC_PATH directories for
//               *.prc files and loads them in as pages.  This is
//               normally called automatically at startup time, when
//               the first variable's value is referenced.  See also
//               reload_implicit_pages().
////////////////////////////////////////////////////////////////////
57
inline void ConfigPageManager::load_implicit_pages(void);

1508 21 reload_implicit_pages 0 4 2763 40 ConfigPageManager::reload_implicit_pages 0 1 52 0
52
void ConfigPageManager::reload_implicit_pages(void);

1509 15 get_search_path 0 4 2763 34 ConfigPageManager::get_search_path 0 1 53 556
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_search_path
//       Access: Published
//  Description: Returns the search path used to locate implicit .prc
//               files.  This is determined by the PRC_DIR and
//               PRC_PATH environment variables.  The object returned
//               by this method may be modified to change the path at
//               runtime, and then reload_implicit_pages() called.
////////////////////////////////////////////////////////////////////
61
inline DSearchPath &ConfigPageManager::get_search_path(void);

1510 20 get_num_prc_patterns 0 4 2763 39 ConfigPageManager::get_num_prc_patterns 0 1 54 574
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_prc_patterns
//       Access: Published
//  Description: Returns the number of patterns, like "*.prc", that
//               are compiled in that will be searched for as default
//               config filenames.  Normally there is only one
//               pattern, and it is "*.prc", but others may be
//               specified with the PRC_FILENAME variable in
//               Config.pp.
////////////////////////////////////////////////////////////////////
63
inline int ConfigPageManager::get_num_prc_patterns(void) const;

1511 15 get_prc_pattern 0 4 2763 34 ConfigPageManager::get_prc_pattern 0 1 55 385
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_prc_pattern
//       Access: Published
//  Description: Returns the nth filename pattern that will be
//               considered a match as a valid config file.  See
//               get_num_prc_patterns().
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > ConfigPageManager::get_prc_pattern(int n) const;

1512 30 get_num_prc_encrypted_patterns 0 4 2763 49 ConfigPageManager::get_num_prc_encrypted_patterns 0 1 56 436
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_prc_encrypted_patterns
//       Access: Published
//  Description: Returns the number of patterns, like "*.pre", that
//               are compiled in that will be searched for as special
//               config files that are understood to be encrypted.
////////////////////////////////////////////////////////////////////
73
inline int ConfigPageManager::get_num_prc_encrypted_patterns(void) const;

1513 25 get_prc_encrypted_pattern 0 4 2763 44 ConfigPageManager::get_prc_encrypted_pattern 0 1 57 415
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_prc_encrypted_pattern
//       Access: Published
//  Description: Returns the nth filename pattern that will be
//               considered a match as a valid encrypted config
//               file.  See get_num_prc_encrypted_patterns().
////////////////////////////////////////////////////////////////////
86
inline basic_string< char > ConfigPageManager::get_prc_encrypted_pattern(int n) const;

1514 31 get_num_prc_executable_patterns 0 4 2763 50 ConfigPageManager::get_num_prc_executable_patterns 0 1 58 533
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_prc_executable_patterns
//       Access: Published
//  Description: Returns the number of patterns, like "*.exe", that
//               are compiled in that will be searched for as special
//               config files that are to be executed as a program,
//               and their output taken to be input.  This is normally
//               empty.
////////////////////////////////////////////////////////////////////
74
inline int ConfigPageManager::get_num_prc_executable_patterns(void) const;

1515 26 get_prc_executable_pattern 0 4 2763 45 ConfigPageManager::get_prc_executable_pattern 0 1 59 424
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_prc_executable_pattern
//       Access: Published
//  Description: Returns the nth filename pattern that will be
//               considered a match as a valid executable-style config
//               file.  See get_num_prc_executable_patterns().
////////////////////////////////////////////////////////////////////
87
inline basic_string< char > ConfigPageManager::get_prc_executable_pattern(int n) const;

1516 18 make_explicit_page 0 4 2763 37 ConfigPageManager::make_explicit_page 0 1 60 0
84
ConfigPage *ConfigPageManager::make_explicit_page(basic_string< char > const &name);

1517 20 delete_explicit_page 0 4 2763 39 ConfigPageManager::delete_explicit_page 0 1 61 0
63
bool ConfigPageManager::delete_explicit_page(ConfigPage *page);

1518 22 get_num_implicit_pages 0 4 2763 41 ConfigPageManager::get_num_implicit_pages 0 1 62 450
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_implicit_pages
//       Access: Published
//  Description: Returns the current number of implicitly-loaded
//               ConfigPages in the world.  These represent files that
//               were automatically discovered on the disk as .prc
//               files.
////////////////////////////////////////////////////////////////////
65
inline int ConfigPageManager::get_num_implicit_pages(void) const;

1519 17 get_implicit_page 0 4 2763 36 ConfigPageManager::get_implicit_page 0 1 63 332
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_implicit_page
//       Access: Published
//  Description: Returns the nth implicit ConfigPage in the world.
//               See get_num_implicit_pages().
////////////////////////////////////////////////////////////////////
69
inline ConfigPage *ConfigPageManager::get_implicit_page(int n) const;

1520 22 get_num_explicit_pages 0 4 2763 41 ConfigPageManager::get_num_explicit_pages 0 1 64 490
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_explicit_pages
//       Access: Published
//  Description: Returns the current number of explicitly-loaded
//               ConfigPages in the world.  These represent pages that
//               were loaded dynamically at runtime by explicit calls
//               to ConfigPageManager::make_explicit_page().
////////////////////////////////////////////////////////////////////
65
inline int ConfigPageManager::get_num_explicit_pages(void) const;

1521 17 get_explicit_page 0 4 2763 36 ConfigPageManager::get_explicit_page 0 1 65 332
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_explicit_page
//       Access: Published
//  Description: Returns the nth explicit ConfigPage in the world.
//               See get_num_explicit_pages().
////////////////////////////////////////////////////////////////////
69
inline ConfigPage *ConfigPageManager::get_explicit_page(int n) const;

1522 6 output 0 4 2763 25 ConfigPageManager::output 0 1 66 0
51
void ConfigPageManager::output(ostream &out) const;

1523 5 write 0 4 2763 24 ConfigPageManager::write 0 1 67 0
50
void ConfigPageManager::write(ostream &out) const;

1524 14 get_global_ptr 0 4 2763 33 ConfigPageManager::get_global_ptr 0 1 68 0
66
static ConfigPageManager *ConfigPageManager::get_global_ptr(void);

1525 8 get_name 0 4 2765 28 ConfigVariableBase::get_name 0 1 90 261
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_name
//       Access: Published
//  Description: Returns the name of the variable.
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > const &ConfigVariableBase::get_name(void) const;

1526 14 get_value_type 0 4 2765 34 ConfigVariableBase::get_value_type 0 1 91 386
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_value_type
//       Access: Published
//  Description: Returns the stated type of this variable.  This
//               should be VT_list, unless a later variable
//               declaration has changed it.
////////////////////////////////////////////////////////////////////
77
inline ConfigFlags::ValueType ConfigVariableBase::get_value_type(void) const;

1527 15 get_description 0 4 2765 35 ConfigVariableBase::get_description 0 1 92 323
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_description
//       Access: Published
//  Description: Returns the brief description of this variable, if
//               it has been defined.
////////////////////////////////////////////////////////////////////
83
inline basic_string< char > const &ConfigVariableBase::get_description(void) const;

1528 9 get_flags 0 4 2765 29 ConfigVariableBase::get_flags 0 1 93 522
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_flags
//       Access: Public
//  Description: Returns the flags value as set by set_flags().  This
//               includes the trust level and some other settings.
//               See the individual methods is_closed(),
//               get_trust_level(), etc. to pull out the semantic
//               meaning of these flags individually.
////////////////////////////////////////////////////////////////////
53
inline int ConfigVariableBase::get_flags(void) const;

1529 9 is_closed 0 4 2765 29 ConfigVariableBase::is_closed 0 1 94 749
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::is_closed
//       Access: Public
//  Description: Returns true if the variable is not trusted by any
//               prc file (and hence cannot be modified from its
//               compiled-in default value), or false for the normal
//               case, in which the variable can be modified by any
//               prc file at or above its trust level (see
//               get_trust_level()).
//
//               This value only has effect in a release build
//               (specifically, when PRC_RESPECT_TRUST_LEVEL is
//               defined true in Config.pp).
////////////////////////////////////////////////////////////////////
54
inline bool ConfigVariableBase::is_closed(void) const;

1530 15 get_trust_level 0 4 2765 35 ConfigVariableBase::get_trust_level 0 1 95 835
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_trust_level
//       Access: Public
//  Description: Returns the minimum trust_level a prc file must
//               demonstrate in order to redefine the value for this
//               variable.  Arguably, this should be called the
//               "mistrust level", since the larger the value, the
//               more suspicious we are of prc files.  This value is
//               not used if is_closed() returns true, which indicates
//               no file may be trusted.
//
//               This value only has effect in a release build
//               (specifically, when PRC_RESPECT_TRUST_LEVEL is
//               defined true in Config.pp).
////////////////////////////////////////////////////////////////////
59
inline int ConfigVariableBase::get_trust_level(void) const;

1531 10 is_dynamic 0 4 2765 30 ConfigVariableBase::is_dynamic 0 1 96 510
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::is_dynamic
//       Access: Public
//  Description: Returns true if the variable was indicated as
//               "dynamic" by its constructor, indicating that its
//               name was dynamically generated, possibly from a large
//               pool, and it should not be listed along with the
//               other variables.
////////////////////////////////////////////////////////////////////
55
inline bool ConfigVariableBase::is_dynamic(void) const;

1532 17 clear_local_value 0 4 2765 37 ConfigVariableBase::clear_local_value 0 1 97 525
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::clear_local_value
//       Access: Published
//  Description: Removes the local value defined for this variable,
//               and allows its value to be once again retrieved from
//               the .prc files.
//
//               Returns true if the value was successfully removed,
//               false if it did not exist in the first place.
////////////////////////////////////////////////////////////////////
56
inline bool ConfigVariableBase::clear_local_value(void);

1533 15 has_local_value 0 4 2765 35 ConfigVariableBase::has_local_value 0 1 98 403
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::has_local_value
//       Access: Published
//  Description: Returns true if this variable's value has been
//               shadowed by a local assignment (as created via
//               make_local_value()), or false otherwise.
////////////////////////////////////////////////////////////////////
60
inline bool ConfigVariableBase::has_local_value(void) const;

1534 9 has_value 0 4 2765 29 ConfigVariableBase::has_value 0 1 99 395
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::has_value
//       Access: Public
//  Description: Returns true if this variable has an explicit value,
//               either from a prc file or locally set, or false if
//               variable has its default value.
////////////////////////////////////////////////////////////////////
54
inline bool ConfigVariableBase::has_value(void) const;

1535 6 output 0 4 2765 26 ConfigVariableBase::output 0 1 100 226
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
59
inline void ConfigVariableBase::output(ostream &out) const;

1536 5 write 0 4 2765 25 ConfigVariableBase::write 0 1 101 225
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::write
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
58
inline void ConfigVariableBase::write(ostream &out) const;

1537 14 ConfigVariable 0 4 2764 30 ConfigVariable::ConfigVariable 0 1 69 1670
// Filename: configVariable.I
// Created by:  drose (18Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::Constructor
//       Access: Protected
//  Description: This constructor is only intended to be called from a
//               specialized ConfigVariableFoo derived class.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::Constructor
//       Access: Protected
//  Description: This constructor is only intended to be called from a
//               specialized ConfigVariableFoo derived class.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::Constructor
//       Access: Published
//  Description: Use this constructor to make a ConfigVariable of an
//               unspecified type.  Usually you'd want to do this just
//               to reference a previously-defined ConfigVariable of a
//               specific type, without having to know what type it is.
////////////////////////////////////////////////////////////////////
72
inline ConfigVariable::ConfigVariable(basic_string< char > const &name);

1538 15 ~ConfigVariable 0 4 2764 31 ConfigVariable::~ConfigVariable 0 0 226
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::Destructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
45
inline ConfigVariable::~ConfigVariable(void);

1539 17 get_default_value 0 4 2764 33 ConfigVariable::get_default_value 0 1 70 390
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_default_value
//       Access: Published
//  Description: Returns the default variable specified for this
//               variable.  If the variable has not yet been defined,
//               this will return NULL.
////////////////////////////////////////////////////////////////////
78
inline ConfigDeclaration const *ConfigVariable::get_default_value(void) const;

1540 16 get_string_value 0 4 2764 32 ConfigVariable::get_string_value 0 1 71 315
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_string_value
//       Access: Published
//  Description: Returns the toplevel value of the variable, formatted
//               as a string.
////////////////////////////////////////////////////////////////////
80
inline basic_string< char > const &ConfigVariable::get_string_value(void) const;

1541 16 set_string_value 0 4 2764 32 ConfigVariable::set_string_value 0 1 72 443
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_string_value
//       Access: Published
//  Description: Changes the value assigned to this variable.  This
//               creates a local value that shadows any values defined
//               in the .prc files, until clear_local_value() is
//               called.
////////////////////////////////////////////////////////////////////
80
inline void ConfigVariable::set_string_value(basic_string< char > const &value);

1542 11 clear_value 0 4 2764 27 ConfigVariable::clear_value 0 1 73 376
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::clear_value
//       Access: Published
//  Description: Removes the value assigned to this variable, and lets
//               its original value (as read from the prc files) show
//               through.
////////////////////////////////////////////////////////////////////
46
inline void ConfigVariable::clear_value(void);

1543 13 get_num_words 0 4 2764 29 ConfigVariable::get_num_words 0 1 74 402
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_num_words
//       Access: Published
//  Description: Returns the number of words in the variable's
//               value.  A word is defined as a sequence of
//               non-whitespace characters delimited by whitespace.
////////////////////////////////////////////////////////////////////
53
inline int ConfigVariable::get_num_words(void) const;

1544 15 has_string_word 0 4 2764 31 ConfigVariable::has_string_word 0 1 75 446
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_string_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               string value for the nth word.  This is really the
//               same thing as asking if there are at least n words in
//               the value.
////////////////////////////////////////////////////////////////////
57
inline bool ConfigVariable::has_string_word(int n) const;

1545 13 has_bool_word 0 4 2764 29 ConfigVariable::has_bool_word 0 1 76 326
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_bool_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               boolean value for the nth word.
////////////////////////////////////////////////////////////////////
55
inline bool ConfigVariable::has_bool_word(int n) const;

1546 12 has_int_word 0 4 2764 28 ConfigVariable::has_int_word 0 1 77 325
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_int_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               integer value for the nth word.
////////////////////////////////////////////////////////////////////
54
inline bool ConfigVariable::has_int_word(int n) const;

1547 14 has_int64_word 0 4 2764 30 ConfigVariable::has_int64_word 0 1 78 334
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_int64_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               64-bit integer value for the nth word.
////////////////////////////////////////////////////////////////////
56
inline bool ConfigVariable::has_int64_word(int n) const;

1548 15 has_double_word 0 4 2764 31 ConfigVariable::has_double_word 0 1 79 328
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_double_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               integer value for the nth word.
////////////////////////////////////////////////////////////////////
57
inline bool ConfigVariable::has_double_word(int n) const;

1549 15 get_string_word 0 4 2764 31 ConfigVariable::get_string_word 0 1 80 401
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_string_word
//       Access: Published
//  Description: Returns the string value of the nth word of the
//               variable's value, or empty string if there is no
//               nth value.  See also has_string_word().
////////////////////////////////////////////////////////////////////
73
inline basic_string< char > ConfigVariable::get_string_word(int n) const;

1550 13 get_bool_word 0 4 2764 29 ConfigVariable::get_bool_word 0 1 81 391
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_bool_word
//       Access: Published
//  Description: Returns the boolean value of the nth word of the
//               variable's value, or false if there is no nth
//               value.  See also has_bool_word().
////////////////////////////////////////////////////////////////////
55
inline bool ConfigVariable::get_bool_word(int n) const;

1551 12 get_int_word 0 4 2764 28 ConfigVariable::get_int_word 0 1 82 384
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_int_word
//       Access: Published
//  Description: Returns the integer value of the nth word of the
//               variable's value, or 0 if there is no nth value.
//               See also has_int_word().
////////////////////////////////////////////////////////////////////
53
inline int ConfigVariable::get_int_word(int n) const;

1552 14 get_int64_word 0 4 2764 30 ConfigVariable::get_int64_word 0 1 83 384
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_int64_word
//       Access: Published
//  Description: Returns the int64 value of the nth word of the
//               variable's value, or 0 if there is no nth value.
//               See also has_int_word().
////////////////////////////////////////////////////////////////////
59
inline __int64 ConfigVariable::get_int64_word(int n) const;

1553 15 get_double_word 0 4 2764 31 ConfigVariable::get_double_word 0 1 84 390
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_double_word
//       Access: Published
//  Description: Returns the integer value of the nth word of the
//               variable's value, or 0 if there is no nth value.
//               See also has_double_word().
////////////////////////////////////////////////////////////////////
59
inline double ConfigVariable::get_double_word(int n) const;

1554 15 set_string_word 0 4 2764 31 ConfigVariable::set_string_word 0 1 85 326
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_string_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
////////////////////////////////////////////////////////////////////
86
inline void ConfigVariable::set_string_word(int n, basic_string< char > const &value);

1555 13 set_bool_word 0 4 2764 29 ConfigVariable::set_bool_word 0 1 86 324
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_bool_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
////////////////////////////////////////////////////////////////////
61
inline void ConfigVariable::set_bool_word(int n, bool value);

1556 12 set_int_word 0 4 2764 28 ConfigVariable::set_int_word 0 1 87 323
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_int_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
////////////////////////////////////////////////////////////////////
59
inline void ConfigVariable::set_int_word(int n, int value);

1557 14 set_int64_word 0 4 2764 30 ConfigVariable::set_int64_word 0 1 88 325
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_int64_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
////////////////////////////////////////////////////////////////////
65
inline void ConfigVariable::set_int64_word(int n, __int64 value);

1558 15 set_double_word 0 4 2764 31 ConfigVariable::set_double_word 0 1 89 326
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_double_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
////////////////////////////////////////////////////////////////////
65
inline void ConfigVariable::set_double_word(int n, double value);

1559 18 ConfigVariableBool 0 4 2766 38 ConfigVariableBool::ConfigVariableBool 0 7 102 103 104 105 106 107 108 1191
// Filename: configVariableBool.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
451
inline ConfigVariableBool::ConfigVariableBool(basic_string< char > const &name);
inline ConfigVariableBool::ConfigVariableBool(basic_string< char > const &name, bool default_value, basic_string< char > const &description = ((string())), int flags = (0));
inline ConfigVariableBool::ConfigVariableBool(basic_string< char > const &name, basic_string< char > const &default_value, basic_string< char > const &description = ((string())), int flags = (0));

1560 10 operator = 0 4 2766 30 ConfigVariableBool::operator = 0 1 109 267
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
55
inline void ConfigVariableBool::operator =(bool value);

1561 22 operator typecast bool 0 132 2766 42 ConfigVariableBool::operator typecast bool 0 1 117 266
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::typecast operator
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
67
inline bool ConfigVariableBool::operator typecast bool(void) const;

1562 4 size 0 4 2766 24 ConfigVariableBool::size 0 1 110 277
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::size()
//       Access: Published
//  Description: Returns the number of unique words in the variable.
////////////////////////////////////////////////////////////////////
48
inline int ConfigVariableBool::size(void) const;

1563 11 operator [] 0 4 2766 31 ConfigVariableBool::operator [] 0 1 111 276
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::operator []
//       Access: Published
//  Description: Returns the value of the variable's nth word.
////////////////////////////////////////////////////////////////////
57
inline bool ConfigVariableBool::operator [](int n) const;

1564 9 set_value 0 4 2766 29 ConfigVariableBool::set_value 0 1 112 266
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
54
inline void ConfigVariableBool::set_value(bool value);

1565 9 get_value 0 4 2766 29 ConfigVariableBool::get_value 0 1 113 258
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::get_value
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
54
inline bool ConfigVariableBool::get_value(void) const;

1566 17 get_default_value 0 4 2766 37 ConfigVariableBool::get_default_value 0 1 114 274
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
////////////////////////////////////////////////////////////////////
62
inline bool ConfigVariableBool::get_default_value(void) const;

1567 8 get_word 0 4 2766 28 ConfigVariableBool::get_word 0 1 115 261
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
////////////////////////////////////////////////////////////////////
54
inline bool ConfigVariableBool::get_word(int n) const;

1568 8 set_word 0 4 2766 28 ConfigVariableBool::set_word 0 1 116 338
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
////////////////////////////////////////////////////////////////////
60
inline void ConfigVariableBool::set_word(int n, bool value);

1569 19 ~ConfigVariableBool 0 4 2766 39 ConfigVariableBool::~ConfigVariableBool 0 0 0
46
ConfigVariableBool::~ConfigVariableBool(void);

1570 8 get_name 0 4 2767 28 ConfigVariableCore::get_name 0 1 118 752
// Filename: configVariableCore.I
// Created by:  drose (15Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_name
//       Access: Public
//  Description: Returns the name of the variable.
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > const &ConfigVariableCore::get_name(void) const;

1571 7 is_used 0 4 2767 27 ConfigVariableCore::is_used 0 1 119 345
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::is_used
//       Access: Public
//  Description: Returns true if the variable has been referenced by a
//               ConfigVariable somewhere in code, false otherwise.
////////////////////////////////////////////////////////////////////
52
inline bool ConfigVariableCore::is_used(void) const;

1572 14 get_value_type 0 4 2767 34 ConfigVariableCore::get_value_type 0 1 120 376
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_value_type
//       Access: Public
//  Description: Returns the stated type of this variable.  If the
//               variable has not yet been defined, this will be
//               VT_undefined.
////////////////////////////////////////////////////////////////////
77
inline ConfigFlags::ValueType ConfigVariableCore::get_value_type(void) const;

1573 15 get_description 0 4 2767 35 ConfigVariableCore::get_description 0 1 121 320
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_description
//       Access: Public
//  Description: Returns the brief description of this variable, if
//               it has been defined.
////////////////////////////////////////////////////////////////////
83
inline basic_string< char > const &ConfigVariableCore::get_description(void) const;

1574 9 get_flags 0 4 2767 29 ConfigVariableCore::get_flags 0 1 122 522
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_flags
//       Access: Public
//  Description: Returns the flags value as set by set_flags().  This
//               includes the trust level and some other settings.
//               See the individual methods is_closed(),
//               get_trust_level(), etc. to pull out the semantic
//               meaning of these flags individually.
////////////////////////////////////////////////////////////////////
53
inline int ConfigVariableCore::get_flags(void) const;

1575 9 is_closed 0 4 2767 29 ConfigVariableCore::is_closed 0 1 123 749
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::is_closed
//       Access: Public
//  Description: Returns true if the variable is not trusted by any
//               prc file (and hence cannot be modified from its
//               compiled-in default value), or false for the normal
//               case, in which the variable can be modified by any
//               prc file at or above its trust level (see
//               get_trust_level()).
//
//               This value only has effect in a release build
//               (specifically, when PRC_RESPECT_TRUST_LEVEL is
//               defined true in Config.pp).
////////////////////////////////////////////////////////////////////
54
inline bool ConfigVariableCore::is_closed(void) const;

1576 15 get_trust_level 0 4 2767 35 ConfigVariableCore::get_trust_level 0 1 124 835
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_trust_level
//       Access: Public
//  Description: Returns the minimum trust_level a prc file must
//               demonstrate in order to redefine the value for this
//               variable.  Arguably, this should be called the
//               "mistrust level", since the larger the value, the
//               more suspicious we are of prc files.  This value is
//               not used if is_closed() returns true, which indicates
//               no file may be trusted.
//
//               This value only has effect in a release build
//               (specifically, when PRC_RESPECT_TRUST_LEVEL is
//               defined true in Config.pp).
////////////////////////////////////////////////////////////////////
59
inline int ConfigVariableCore::get_trust_level(void) const;

1577 10 is_dynamic 0 4 2767 30 ConfigVariableCore::is_dynamic 0 1 125 510
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::is_dynamic
//       Access: Public
//  Description: Returns true if the variable was indicated as
//               "dynamic" by its constructor, indicating that its
//               name was dynamically generated, possibly from a large
//               pool, and it should not be listed along with the
//               other variables.
////////////////////////////////////////////////////////////////////
55
inline bool ConfigVariableCore::is_dynamic(void) const;

1578 17 get_default_value 0 4 2767 37 ConfigVariableCore::get_default_value 0 1 126 391
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_default_value
//       Access: Public
//  Description: Returns the default variable specified for this
//               variable.  If the variable has not yet been defined,
//               this will return NULL.
////////////////////////////////////////////////////////////////////
82
inline ConfigDeclaration const *ConfigVariableCore::get_default_value(void) const;

1579 14 set_value_type 0 4 2767 34 ConfigVariableCore::set_value_type 0 1 127 0
75
void ConfigVariableCore::set_value_type(ConfigFlags::ValueType value_type);

1580 9 set_flags 0 4 2767 29 ConfigVariableCore::set_flags 0 1 128 0
46
void ConfigVariableCore::set_flags(int flags);

1581 15 set_description 0 4 2767 35 ConfigVariableCore::set_description 0 1 129 0
82
void ConfigVariableCore::set_description(basic_string< char > const &description);

1582 17 set_default_value 0 4 2767 37 ConfigVariableCore::set_default_value 0 1 130 0
86
void ConfigVariableCore::set_default_value(basic_string< char > const &default_value);

1583 8 set_used 0 4 2767 28 ConfigVariableCore::set_used 0 1 131 306
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::set_used
//       Access: Public
//  Description: Marks that the variable has been "declared" by a
//               ConfigVariable.
////////////////////////////////////////////////////////////////////
47
inline void ConfigVariableCore::set_used(void);

1584 16 make_local_value 0 4 2767 36 ConfigVariableCore::make_local_value 0 1 132 0
62
ConfigDeclaration *ConfigVariableCore::make_local_value(void);

1585 17 clear_local_value 0 4 2767 37 ConfigVariableCore::clear_local_value 0 1 133 0
49
bool ConfigVariableCore::clear_local_value(void);

1586 15 has_local_value 0 4 2767 35 ConfigVariableCore::has_local_value 0 1 134 400
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::has_local_value
//       Access: Public
//  Description: Returns true if this variable's value has been
//               shadowed by a local assignment (as created via
//               make_local_value()), or false otherwise.
////////////////////////////////////////////////////////////////////
60
inline bool ConfigVariableCore::has_local_value(void) const;

1587 9 has_value 0 4 2767 29 ConfigVariableCore::has_value 0 1 135 0
47
bool ConfigVariableCore::has_value(void) const;

1588 20 get_num_declarations 0 4 2767 40 ConfigVariableCore::get_num_declarations 0 1 136 0
57
int ConfigVariableCore::get_num_declarations(void) const;

1589 15 get_declaration 0 4 2767 35 ConfigVariableCore::get_declaration 0 1 137 0
74
ConfigDeclaration const *ConfigVariableCore::get_declaration(int n) const;

1590 18 get_num_references 0 4 2767 38 ConfigVariableCore::get_num_references 0 1 138 412
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_num_references
//       Access: Public
//  Description: Returns the number of prc files that reference this
//               variable.  This is not exactly the same as the number
//               of declarations; see get_reference().
////////////////////////////////////////////////////////////////////
62
inline int ConfigVariableCore::get_num_references(void) const;

1591 13 get_reference 0 4 2767 33 ConfigVariableCore::get_reference 0 1 139 645
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_reference
//       Access: Public
//  Description: Returns the nth declaration in a prc file that
//               references this variable.  This is similar, but not
//               identical to, get_declaration().  The difference is
//               that this will list *only* true references in a prc
//               file, and will not list default values or
//               locally-assigned values; it also will list even the
//               untrusted files.
////////////////////////////////////////////////////////////////////
79
inline ConfigDeclaration const *ConfigVariableCore::get_reference(int n) const;

1592 26 get_num_trusted_references 0 4 2767 46 ConfigVariableCore::get_num_trusted_references 0 1 140 378
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_num_trusted_references
//       Access: Public
//  Description: Returns the number of trusted prc files that
//               reference this variable.  See also
//               get_num_references().
////////////////////////////////////////////////////////////////////
70
inline int ConfigVariableCore::get_num_trusted_references(void) const;

1593 21 get_trusted_reference 0 4 2767 41 ConfigVariableCore::get_trusted_reference 0 1 141 776
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_trusted_reference
//       Access: Public
//  Description: Returns the nth declaration in a trusted prc file
//               that references this variable.  This is similar, but
//               not identical to, get_declaration().  The difference
//               is that this will list *only* true references in a
//               prc file, and will not list default values or
//               locally-assigned values.
//
//               This is also similar to get_reference(), except that
//               it only lists the trusted declarations, omitting the
//               untrusted ones.
////////////////////////////////////////////////////////////////////
87
inline ConfigDeclaration const *ConfigVariableCore::get_trusted_reference(int n) const;

1594 25 get_num_unique_references 0 4 2767 45 ConfigVariableCore::get_num_unique_references 0 1 142 352
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_num_unique_references
//       Access: Public
//  Description: Returns the number of trusted, unique (by string
//               value) values there exist for this variable.
////////////////////////////////////////////////////////////////////
69
inline int ConfigVariableCore::get_num_unique_references(void) const;

1595 20 get_unique_reference 0 4 2767 40 ConfigVariableCore::get_unique_reference 0 1 143 431
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_unique_reference
//       Access: Public
//  Description: Returns the nth trusted, unique value for this
//               variable.  This is similar to
//               get_trusted_reference(), except that duplicate values
//               are removed.
////////////////////////////////////////////////////////////////////
86
inline ConfigDeclaration const *ConfigVariableCore::get_unique_reference(int n) const;

1596 6 output 0 4 2767 26 ConfigVariableCore::output 0 1 144 0
52
void ConfigVariableCore::output(ostream &out) const;

1597 5 write 0 4 2767 25 ConfigVariableCore::write 0 1 145 0
51
void ConfigVariableCore::write(ostream &out) const;

1598 20 ConfigVariableDouble 0 4 2768 42 ConfigVariableDouble::ConfigVariableDouble 0 7 146 147 148 149 150 151 152 1199
// Filename: configVariableDouble.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
465
inline ConfigVariableDouble::ConfigVariableDouble(basic_string< char > const &name);
inline ConfigVariableDouble::ConfigVariableDouble(basic_string< char > const &name, double default_value, basic_string< char > const &description = ((string())), int flags = (0));
inline ConfigVariableDouble::ConfigVariableDouble(basic_string< char > const &name, basic_string< char > const &default_value, basic_string< char > const &description = ((string())), int flags = (0));

1599 10 operator = 0 4 2768 32 ConfigVariableDouble::operator = 0 1 153 269
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
59
inline void ConfigVariableDouble::operator =(double value);

1600 24 operator typecast double 0 132 2768 46 ConfigVariableDouble::operator typecast double 0 1 161 268
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::typecast operator
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
73
inline double ConfigVariableDouble::operator typecast double(void) const;

1601 4 size 0 4 2768 26 ConfigVariableDouble::size 0 1 154 279
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::size()
//       Access: Published
//  Description: Returns the number of unique words in the variable.
////////////////////////////////////////////////////////////////////
50
inline int ConfigVariableDouble::size(void) const;

1602 11 operator [] 0 4 2768 33 ConfigVariableDouble::operator [] 0 1 155 278
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::operator []
//       Access: Published
//  Description: Returns the value of the variable's nth word.
////////////////////////////////////////////////////////////////////
61
inline double ConfigVariableDouble::operator [](int n) const;

1603 9 set_value 0 4 2768 31 ConfigVariableDouble::set_value 0 1 156 268
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
58
inline void ConfigVariableDouble::set_value(double value);

1604 9 get_value 0 4 2768 31 ConfigVariableDouble::get_value 0 1 157 260
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::get_value
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
58
inline double ConfigVariableDouble::get_value(void) const;

1605 17 get_default_value 0 4 2768 39 ConfigVariableDouble::get_default_value 0 1 158 276
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
////////////////////////////////////////////////////////////////////
66
inline double ConfigVariableDouble::get_default_value(void) const;

1606 8 get_word 0 4 2768 30 ConfigVariableDouble::get_word 0 1 159 263
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
////////////////////////////////////////////////////////////////////
58
inline double ConfigVariableDouble::get_word(int n) const;

1607 8 set_word 0 4 2768 30 ConfigVariableDouble::set_word 0 1 160 340
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
////////////////////////////////////////////////////////////////////
64
inline void ConfigVariableDouble::set_word(int n, double value);

1608 21 ~ConfigVariableDouble 0 4 2768 43 ConfigVariableDouble::~ConfigVariableDouble 0 0 0
50
ConfigVariableDouble::~ConfigVariableDouble(void);

1609 22 ConfigVariableFilename 0 4 2769 46 ConfigVariableFilename::ConfigVariableFilename 0 4 162 163 164 165 970
// Filename: configVariableFilename.I
// Created by:  drose (22Nov04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
281
inline ConfigVariableFilename::ConfigVariableFilename(basic_string< char > const &name);
inline ConfigVariableFilename::ConfigVariableFilename(basic_string< char > const &name, Filename const &default_value, basic_string< char > const &description = ((string())), int flags = (0));

1610 10 operator = 0 4 2769 34 ConfigVariableFilename::operator = 0 1 166 271
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
70
inline void ConfigVariableFilename::operator =(Filename const &value);

1611 17 operator typecast 0 132 2769 41 ConfigVariableFilename::operator typecast 0 1 185 293
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Filename typecast operator
//       Access: Published
//  Description: Returns the variable's value as a Filename.
////////////////////////////////////////////////////////////////////
77
inline Filename const &ConfigVariableFilename::operator typecast(void) const;

1612 5 c_str 0 4 2769 29 ConfigVariableFilename::c_str 0 1 167 306
// These methods help the ConfigVariableFilename act like a Filename
// object.

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::c_str
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
61
inline char const *ConfigVariableFilename::c_str(void) const;

1613 5 empty 0 4 2769 29 ConfigVariableFilename::empty 0 1 168 306
// These methods help the ConfigVariableFilename act like a Filename
// object.

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::empty
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
54
inline bool ConfigVariableFilename::empty(void) const;

1614 6 length 0 4 2769 30 ConfigVariableFilename::length 0 1 169 226
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::length
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
63
inline unsigned int ConfigVariableFilename::length(void) const;

1615 11 operator [] 0 4 2769 35 ConfigVariableFilename::operator [] 0 1 170 237
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Indexing operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
61
inline char ConfigVariableFilename::operator [](int n) const;

1616 12 get_fullpath 0 4 2769 36 ConfigVariableFilename::get_fullpath 0 1 171 450
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_fullpath
//       Access: Public
//  Description: Returns the entire filename: directory, basename,
//               extension.  This is the same thing returned by the
//               string typecast operator, so this function is a
//               little redundant.
////////////////////////////////////////////////////////////////////
77
inline basic_string< char > ConfigVariableFilename::get_fullpath(void) const;

1617 11 get_dirname 0 4 2769 35 ConfigVariableFilename::get_dirname 0 1 172 391
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_dirname
//       Access: Public
//  Description: Returns the directory part of the filename.  This is
//               everything in the filename up to, but not including
//               the rightmost slash.
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > ConfigVariableFilename::get_dirname(void) const;

1618 12 get_basename 0 4 2769 36 ConfigVariableFilename::get_basename 0 1 173 398
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_basename
//       Access: Public
//  Description: Returns the basename part of the filename.  This is
//               everything in the filename after the rightmost slash,
//               including any extensions.
////////////////////////////////////////////////////////////////////
77
inline basic_string< char > ConfigVariableFilename::get_basename(void) const;

1619 25 get_fullpath_wo_extension 0 4 2769 49 ConfigVariableFilename::get_fullpath_wo_extension 0 1 174 345
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_fullpath_wo_extension
//       Access: Public
//  Description: Returns the full filename--directory and basename
//               parts--except for the extension.
////////////////////////////////////////////////////////////////////
90
inline basic_string< char > ConfigVariableFilename::get_fullpath_wo_extension(void) const;

1620 25 get_basename_wo_extension 0 4 2769 49 ConfigVariableFilename::get_basename_wo_extension 0 1 175 333
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_basename_wo_extension
//       Access: Public
//  Description: Returns the basename part of the filename, without
//               the file extension.
////////////////////////////////////////////////////////////////////
90
inline basic_string< char > ConfigVariableFilename::get_basename_wo_extension(void) const;

1621 13 get_extension 0 4 2769 37 ConfigVariableFilename::get_extension 0 1 176 394
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_extension
//       Access: Public
//  Description: Returns the file extension.  This is everything after
//               the rightmost dot, if there is one, or the empty
//               string if there is not.
////////////////////////////////////////////////////////////////////
78
inline basic_string< char > ConfigVariableFilename::get_extension(void) const;

1622 11 operator == 0 4 2769 35 ConfigVariableFilename::operator == 0 1 177 273
// Comparison operators are handy.

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Equality operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
77
inline bool ConfigVariableFilename::operator ==(Filename const &other) const;

1623 11 operator != 0 4 2769 35 ConfigVariableFilename::operator != 0 1 178 275
// Comparison operators are handy.

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Inequality operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
77
inline bool ConfigVariableFilename::operator !=(Filename const &other) const;

1624 10 operator < 0 4 2769 34 ConfigVariableFilename::operator < 0 1 179 237
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Ordering operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
76
inline bool ConfigVariableFilename::operator <(Filename const &other) const;

1625 9 set_value 0 4 2769 33 ConfigVariableFilename::set_value 0 1 180 270
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
69
inline void ConfigVariableFilename::set_value(Filename const &value);

1626 9 get_value 0 4 2769 33 ConfigVariableFilename::get_value 0 1 181 262
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_value
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
62
inline Filename ConfigVariableFilename::get_value(void) const;

1627 17 get_default_value 0 4 2769 41 ConfigVariableFilename::get_default_value 0 1 182 278
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
////////////////////////////////////////////////////////////////////
70
inline Filename ConfigVariableFilename::get_default_value(void) const;

1628 8 get_word 0 4 2769 32 ConfigVariableFilename::get_word 0 1 183 265
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
////////////////////////////////////////////////////////////////////
62
inline Filename ConfigVariableFilename::get_word(int n) const;

1629 8 set_word 0 4 2769 32 ConfigVariableFilename::set_word 0 1 184 342
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
////////////////////////////////////////////////////////////////////
75
inline void ConfigVariableFilename::set_word(int n, Filename const &value);

1630 23 ~ConfigVariableFilename 0 4 2769 47 ConfigVariableFilename::~ConfigVariableFilename 0 0 0
54
ConfigVariableFilename::~ConfigVariableFilename(void);

1631 17 ConfigVariableInt 0 4 2770 36 ConfigVariableInt::ConfigVariableInt 0 7 186 187 188 189 190 191 192 1187
// Filename: configVariableInt.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
444
inline ConfigVariableInt::ConfigVariableInt(basic_string< char > const &name);
inline ConfigVariableInt::ConfigVariableInt(basic_string< char > const &name, int default_value, basic_string< char > const &description = ((string())), int flags = (0));
inline ConfigVariableInt::ConfigVariableInt(basic_string< char > const &name, basic_string< char > const &default_value, basic_string< char > const &description = ((string())), int flags = (0));

1632 10 operator = 0 4 2770 29 ConfigVariableInt::operator = 0 1 193 266
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
53
inline void ConfigVariableInt::operator =(int value);

1633 21 operator typecast int 0 132 2770 40 ConfigVariableInt::operator typecast int 0 1 201 265
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::typecast operator
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
64
inline int ConfigVariableInt::operator typecast int(void) const;

1634 4 size 0 4 2770 23 ConfigVariableInt::size 0 1 194 276
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::size()
//       Access: Published
//  Description: Returns the number of unique words in the variable.
////////////////////////////////////////////////////////////////////
47
inline int ConfigVariableInt::size(void) const;

1635 11 operator [] 0 4 2770 30 ConfigVariableInt::operator [] 0 1 195 275
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::operator []
//       Access: Published
//  Description: Returns the value of the variable's nth word.
////////////////////////////////////////////////////////////////////
55
inline int ConfigVariableInt::operator [](int n) const;

1636 9 set_value 0 4 2770 28 ConfigVariableInt::set_value 0 1 196 265
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
52
inline void ConfigVariableInt::set_value(int value);

1637 9 get_value 0 4 2770 28 ConfigVariableInt::get_value 0 1 197 257
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::get_value
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
52
inline int ConfigVariableInt::get_value(void) const;

1638 17 get_default_value 0 4 2770 36 ConfigVariableInt::get_default_value 0 1 198 273
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
////////////////////////////////////////////////////////////////////
60
inline int ConfigVariableInt::get_default_value(void) const;

1639 8 get_word 0 4 2770 27 ConfigVariableInt::get_word 0 1 199 260
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
////////////////////////////////////////////////////////////////////
52
inline int ConfigVariableInt::get_word(int n) const;

1640 8 set_word 0 4 2770 27 ConfigVariableInt::set_word 0 1 200 337
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
////////////////////////////////////////////////////////////////////
58
inline void ConfigVariableInt::set_word(int n, int value);

1641 18 ~ConfigVariableInt 0 4 2770 37 ConfigVariableInt::~ConfigVariableInt 0 0 0
44
ConfigVariableInt::~ConfigVariableInt(void);

1642 19 ConfigVariableInt64 0 4 2771 40 ConfigVariableInt64::ConfigVariableInt64 0 7 202 203 204 205 206 207 208 1195
// Filename: configVariableInt64.I
// Created by:  drose (19Dec07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
468
inline ConfigVariableInt64::ConfigVariableInt64(basic_string< char > const &name);
inline ConfigVariableInt64::ConfigVariableInt64(basic_string< char > const &name, __int64 default_value, basic_string< char > const &description = ((string())), __int64 flags = (0));
inline ConfigVariableInt64::ConfigVariableInt64(basic_string< char > const &name, basic_string< char > const &default_value, basic_string< char > const &description = ((string())), __int64 flags = (0));

1643 10 operator = 0 4 2771 31 ConfigVariableInt64::operator = 0 1 209 268
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
59
inline void ConfigVariableInt64::operator =(__int64 value);

1644 25 operator typecast __int64 0 132 2771 46 ConfigVariableInt64::operator typecast __int64 0 1 217 267
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::typecast operator
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
74
inline __int64 ConfigVariableInt64::operator typecast __int64(void) const;

1645 4 size 0 4 2771 25 ConfigVariableInt64::size 0 1 210 278
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::size()
//       Access: Published
//  Description: Returns the number of unique words in the variable.
////////////////////////////////////////////////////////////////////
53
inline __int64 ConfigVariableInt64::size(void) const;

1646 11 operator [] 0 4 2771 32 ConfigVariableInt64::operator [] 0 1 211 277
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::operator []
//       Access: Published
//  Description: Returns the value of the variable's nth word.
////////////////////////////////////////////////////////////////////
61
inline __int64 ConfigVariableInt64::operator [](int n) const;

1647 9 set_value 0 4 2771 30 ConfigVariableInt64::set_value 0 1 212 267
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
58
inline void ConfigVariableInt64::set_value(__int64 value);

1648 9 get_value 0 4 2771 30 ConfigVariableInt64::get_value 0 1 213 259
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::get_value
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
58
inline __int64 ConfigVariableInt64::get_value(void) const;

1649 17 get_default_value 0 4 2771 38 ConfigVariableInt64::get_default_value 0 1 214 275
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
////////////////////////////////////////////////////////////////////
66
inline __int64 ConfigVariableInt64::get_default_value(void) const;

1650 8 get_word 0 4 2771 29 ConfigVariableInt64::get_word 0 1 215 262
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
////////////////////////////////////////////////////////////////////
58
inline __int64 ConfigVariableInt64::get_word(int n) const;

1651 8 set_word 0 4 2771 29 ConfigVariableInt64::set_word 0 1 216 339
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
////////////////////////////////////////////////////////////////////
64
inline void ConfigVariableInt64::set_word(int n, __int64 value);

1652 20 ~ConfigVariableInt64 0 4 2771 41 ConfigVariableInt64::~ConfigVariableInt64 0 0 0
48
ConfigVariableInt64::~ConfigVariableInt64(void);

1653 18 ConfigVariableList 0 4 2772 38 ConfigVariableList::ConfigVariableList 0 3 218 219 220 231
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
153
inline ConfigVariableList::ConfigVariableList(basic_string< char > const &name, basic_string< char > const &description = ((string())), int flags = (0));

1654 19 ~ConfigVariableList 0 4 2772 39 ConfigVariableList::~ConfigVariableList 0 0 724
// Filename: configVariableList.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::Destructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
53
inline ConfigVariableList::~ConfigVariableList(void);

1655 14 get_num_values 0 4 2772 34 ConfigVariableList::get_num_values 0 1 221 279
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::get_num_values
//       Access: Published
//  Description: Returns the number of values in the variable.
////////////////////////////////////////////////////////////////////
58
inline int ConfigVariableList::get_num_values(void) const;

1656 16 get_string_value 0 4 2772 36 ConfigVariableList::get_string_value 0 1 222 274
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::get_string_value
//       Access: Published
//  Description: Returns the nth value of the variable.
////////////////////////////////////////////////////////////////////
78
inline basic_string< char > ConfigVariableList::get_string_value(int n) const;

1657 21 get_num_unique_values 0 4 2772 41 ConfigVariableList::get_num_unique_values 0 1 223 293
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::get_num_unique_values
//       Access: Published
//  Description: Returns the number of unique values in the variable.
////////////////////////////////////////////////////////////////////
65
inline int ConfigVariableList::get_num_unique_values(void) const;

1658 16 get_unique_value 0 4 2772 36 ConfigVariableList::get_unique_value 0 1 224 281
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::get_unique_value
//       Access: Published
//  Description: Returns the nth unique value of the variable.
////////////////////////////////////////////////////////////////////
78
inline basic_string< char > ConfigVariableList::get_unique_value(int n) const;

1659 4 size 0 4 2772 24 ConfigVariableList::size 0 1 225 278
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::size()
//       Access: Published
//  Description: Returns the number of unique values of the variable.
////////////////////////////////////////////////////////////////////
48
inline int ConfigVariableList::size(void) const;

1660 11 operator [] 0 4 2772 31 ConfigVariableList::operator [] 0 1 226 448
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::operator []
//       Access: Published
//  Description: Returns the nth unique value of the variable.  Note
//               that the indexing operator returns the list of unique
//               values, and so the maximum range is
//               get_num_unique_values().
////////////////////////////////////////////////////////////////////
73
inline basic_string< char > ConfigVariableList::operator [](int n) const;

1661 6 output 0 4 2772 26 ConfigVariableList::output 0 1 227 0
52
void ConfigVariableList::output(ostream &out) const;

1662 5 write 0 4 2772 25 ConfigVariableList::write 0 1 228 0
51
void ConfigVariableList::write(ostream &out) const;

1663 13 make_variable 0 4 2773 36 ConfigVariableManager::make_variable 0 1 229 0
91
ConfigVariableCore *ConfigVariableManager::make_variable(basic_string< char > const &name);

1664 22 make_variable_template 0 4 2773 45 ConfigVariableManager::make_variable_template 0 3 230 231 232 0
248
ConfigVariableCore *ConfigVariableManager::make_variable_template(basic_string< char > const &pattern, ConfigFlags::ValueType type, basic_string< char > const &default_value, basic_string< char > const &description = ((string())), int flags = (0));

1665 17 get_num_variables 0 4 2773 40 ConfigVariableManager::get_num_variables 0 1 233 824
// Filename: configVariableManager.I
// Created by:  drose (15Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableManager::get_num_variables
//       Access: Published
//  Description: Returns the current number of active ConfigVariableCores in
//               the world.
////////////////////////////////////////////////////////////////////
64
inline int ConfigVariableManager::get_num_variables(void) const;

1666 12 get_variable 0 4 2773 35 ConfigVariableManager::get_variable 0 1 234 290
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableManager::get_variable
//       Access: Published
//  Description: Returns the nth active ConfigVariableCore in the world.
////////////////////////////////////////////////////////////////////
76
inline ConfigVariableCore *ConfigVariableManager::get_variable(int n) const;

1667 17 get_variable_name 0 4 2773 40 ConfigVariableManager::get_variable_name 0 1 235 0
75
basic_string< char > ConfigVariableManager::get_variable_name(int n) const;

1668 16 is_variable_used 0 4 2773 39 ConfigVariableManager::is_variable_used 0 1 236 0
58
bool ConfigVariableManager::is_variable_used(int n) const;

1669 6 output 0 4 2773 29 ConfigVariableManager::output 0 1 237 0
55
void ConfigVariableManager::output(ostream &out) const;

1670 5 write 0 4 2773 28 ConfigVariableManager::write 0 1 238 0
54
void ConfigVariableManager::write(ostream &out) const;

1671 19 write_prc_variables 0 4 2773 42 ConfigVariableManager::write_prc_variables 0 1 239 0
68
void ConfigVariableManager::write_prc_variables(ostream &out) const;

1672 21 list_unused_variables 0 4 2773 44 ConfigVariableManager::list_unused_variables 0 1 240 0
62
void ConfigVariableManager::list_unused_variables(void) const;

1673 14 list_variables 0 4 2773 37 ConfigVariableManager::list_variables 0 1 241 0
55
void ConfigVariableManager::list_variables(void) const;

1674 22 list_dynamic_variables 0 4 2773 45 ConfigVariableManager::list_dynamic_variables 0 1 242 0
63
void ConfigVariableManager::list_dynamic_variables(void) const;

1675 14 get_global_ptr 0 4 2773 37 ConfigVariableManager::get_global_ptr 0 1 243 0
74
static ConfigVariableManager *ConfigVariableManager::get_global_ptr(void);

1676 24 ConfigVariableSearchPath 0 4 2774 50 ConfigVariableSearchPath::ConfigVariableSearchPath 0 7 244 245 246 247 248 249 250 1215
// Filename: configVariableSearchPath.I
// Created by:  drose (21Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
544
inline ConfigVariableSearchPath::ConfigVariableSearchPath(basic_string< char > const &name, basic_string< char > const &description = ((string())), int flags = (0));
inline ConfigVariableSearchPath::ConfigVariableSearchPath(basic_string< char > const &name, DSearchPath const &default_value, basic_string< char > const &description, int flags = (0));
inline ConfigVariableSearchPath::ConfigVariableSearchPath(basic_string< char > const &name, basic_string< char > const &default_value, basic_string< char > const &description, int flags = (0));

1677 25 ~ConfigVariableSearchPath 0 4 2774 51 ConfigVariableSearchPath::~ConfigVariableSearchPath 0 0 236
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Destructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
65
inline ConfigVariableSearchPath::~ConfigVariableSearchPath(void);

1678 17 operator typecast 0 132 2774 43 ConfigVariableSearchPath::operator typecast 0 1 269 275
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::DSearchPath typecast
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
82
inline DSearchPath const &ConfigVariableSearchPath::operator typecast(void) const;

1679 9 get_value 0 4 2774 35 ConfigVariableSearchPath::get_value 0 1 251 235
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::get_value
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
74
inline DSearchPath const &ConfigVariableSearchPath::get_value(void) const;

1680 17 get_default_value 0 4 2774 43 ConfigVariableSearchPath::get_default_value 0 1 252 243
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::get_default_value
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
82
inline DSearchPath const &ConfigVariableSearchPath::get_default_value(void) const;

1681 17 clear_local_value 0 4 2774 43 ConfigVariableSearchPath::clear_local_value 0 1 253 359
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::clear_local_value
//       Access: Published
//  Description: Removes all the directories locally added to the
//               search list, and restores it to its original form.
////////////////////////////////////////////////////////////////////
62
inline bool ConfigVariableSearchPath::clear_local_value(void);

1682 5 clear 0 4 2774 31 ConfigVariableSearchPath::clear 0 1 254 347
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::clear
//       Access: Published
//  Description: Removes all the directories locally added to the
//               search list, and restores it to its original form.
////////////////////////////////////////////////////////////////////
50
inline void ConfigVariableSearchPath::clear(void);

1683 16 append_directory 0 4 2774 42 ConfigVariableSearchPath::append_directory 0 1 255 293
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::append_directory
//       Access: Published
//  Description: Adds a new directory to the end of the search list.
////////////////////////////////////////////////////////////////////
82
inline void ConfigVariableSearchPath::append_directory(Filename const &directory);

1684 17 prepend_directory 0 4 2774 43 ConfigVariableSearchPath::prepend_directory 0 1 256 296
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::prepend_directory
//       Access: Published
//  Description: Adds a new directory to the front of the search list.
////////////////////////////////////////////////////////////////////
83
inline void ConfigVariableSearchPath::prepend_directory(Filename const &directory);

1685 11 append_path 0 4 2774 37 ConfigVariableSearchPath::append_path 0 3 257 258 259 678
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::append_path
//       Access: Published
//  Description: Adds all of the directories listed in the search path
//               to the end of the search list.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::append_path
//       Access: Published
//  Description: Adds all of the directories listed in the search path
//               to the end of the search list.
////////////////////////////////////////////////////////////////////
214
inline void ConfigVariableSearchPath::append_path(basic_string< char > const &path, basic_string< char > const &separator = ((string())));
inline void ConfigVariableSearchPath::append_path(DSearchPath const &path);

1686 12 prepend_path 0 4 2774 38 ConfigVariableSearchPath::prepend_path 0 1 260 345
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::prepend_path
//       Access: Published
//  Description: Adds all of the directories listed in the search path
//               to the beginning of the search list.
////////////////////////////////////////////////////////////////////
76
inline void ConfigVariableSearchPath::prepend_path(DSearchPath const &path);

1687 8 is_empty 0 4 2774 34 ConfigVariableSearchPath::is_empty 0 1 261 309
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::is_empty
//       Access: Published
//  Description: Returns true if the search list is empty, false
//               otherwise.
////////////////////////////////////////////////////////////////////
59
inline bool ConfigVariableSearchPath::is_empty(void) const;

1688 19 get_num_directories 0 4 2774 45 ConfigVariableSearchPath::get_num_directories 0 1 262 298
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::get_num_directories
//       Access: Published
//  Description: Returns the number of directories on the search list.
////////////////////////////////////////////////////////////////////
69
inline int ConfigVariableSearchPath::get_num_directories(void) const;

1689 13 get_directory 0 4 2774 39 ConfigVariableSearchPath::get_directory 0 1 263 284
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::get_directory
//       Access: Published
//  Description: Returns the nth directory on the search list.
////////////////////////////////////////////////////////////////////
76
inline Filename const &ConfigVariableSearchPath::get_directory(int n) const;

1690 9 find_file 0 4 2774 35 ConfigVariableSearchPath::find_file 0 1 264 466
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::find_file
//       Access: Published
//  Description: Searches all the directories in the search list for
//               the indicated file, in order.  Returns the full
//               matching pathname of the first match if found, or the
//               empty string if not found.
////////////////////////////////////////////////////////////////////
84
inline Filename ConfigVariableSearchPath::find_file(Filename const &filename) const;

1691 14 find_all_files 0 4 2774 40 ConfigVariableSearchPath::find_all_files 0 2 265 266 1142
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::find_all_files
//       Access: Published
//  Description: Searches all the directories in the search list for
//               the indicated file, in order.  Fills up the results
//               list with *all* of the matching filenames found, if
//               any.  Returns the number of matches found.
//
//               It is the responsibility of the the caller to clear
//               the results list first; otherwise, the newly-found
//               files will be appended to the list.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::find_all_files
//       Access: Published
//  Description: This variant of find_all_files() returns the new
//               Results object, instead of filling on in on the
//               parameter list.  This is a little more convenient to
//               call from Python.
////////////////////////////////////////////////////////////////////
217
inline int ConfigVariableSearchPath::find_all_files(Filename const &filename, DSearchPath::Results &results) const;
inline DSearchPath::Results ConfigVariableSearchPath::find_all_files(Filename const &filename) const;

1692 6 output 0 4 2774 32 ConfigVariableSearchPath::output 0 1 267 232
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
65
inline void ConfigVariableSearchPath::output(ostream &out) const;

1693 5 write 0 4 2774 31 ConfigVariableSearchPath::write 0 1 268 231
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::write
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
64
inline void ConfigVariableSearchPath::write(ostream &out) const;

1694 20 ConfigVariableString 0 4 2775 42 ConfigVariableString::ConfigVariableString 0 4 270 271 272 273 964
// Filename: configVariableString.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
285
inline ConfigVariableString::ConfigVariableString(basic_string< char > const &name);
inline ConfigVariableString::ConfigVariableString(basic_string< char > const &name, basic_string< char > const &default_value, basic_string< char > const &description = ((string())), int flags = (0));

1695 10 operator = 0 4 2775 32 ConfigVariableString::operator = 0 1 274 269
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
80
inline void ConfigVariableString::operator =(basic_string< char > const &value);

1696 17 operator typecast 0 132 2775 39 ConfigVariableString::operator typecast 0 1 287 275
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::string typecast operator
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
87
inline basic_string< char > const &ConfigVariableString::operator typecast(void) const;

1697 5 c_str 0 4 2775 27 ConfigVariableString::c_str 0 1 275 304
// These methods help the ConfigVariableString act like a C++ string
// object.

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::c_str
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
59
inline char const *ConfigVariableString::c_str(void) const;

1698 5 empty 0 4 2775 27 ConfigVariableString::empty 0 1 276 304
// These methods help the ConfigVariableString act like a C++ string
// object.

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::empty
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
52
inline bool ConfigVariableString::empty(void) const;

1699 6 length 0 4 2775 28 ConfigVariableString::length 0 1 277 224
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::length
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
61
inline unsigned int ConfigVariableString::length(void) const;

1700 11 operator [] 0 4 2775 33 ConfigVariableString::operator [] 0 1 278 235
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Indexing operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
59
inline char ConfigVariableString::operator [](int n) const;

1701 11 operator == 0 4 2775 33 ConfigVariableString::operator == 0 1 279 271
// Comparison operators are handy.

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Equality operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
87
inline bool ConfigVariableString::operator ==(basic_string< char > const &other) const;

1702 11 operator != 0 4 2775 33 ConfigVariableString::operator != 0 1 280 273
// Comparison operators are handy.

////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Inequality operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
87
inline bool ConfigVariableString::operator !=(basic_string< char > const &other) const;

1703 10 operator < 0 4 2775 32 ConfigVariableString::operator < 0 1 281 235
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Ordering operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
86
inline bool ConfigVariableString::operator <(basic_string< char > const &other) const;

1704 9 set_value 0 4 2775 31 ConfigVariableString::set_value 0 1 282 268
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
////////////////////////////////////////////////////////////////////
79
inline void ConfigVariableString::set_value(basic_string< char > const &value);

1705 9 get_value 0 4 2775 31 ConfigVariableString::get_value 0 1 283 260
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::get_value
//       Access: Published
//  Description: Returns the variable's value.
////////////////////////////////////////////////////////////////////
79
inline basic_string< char > const &ConfigVariableString::get_value(void) const;

1706 17 get_default_value 0 4 2775 39 ConfigVariableString::get_default_value 0 1 284 276
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
////////////////////////////////////////////////////////////////////
80
inline basic_string< char > ConfigVariableString::get_default_value(void) const;

1707 8 get_word 0 4 2775 30 ConfigVariableString::get_word 0 1 285 263
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
////////////////////////////////////////////////////////////////////
72
inline basic_string< char > ConfigVariableString::get_word(int n) const;

1708 8 set_word 0 4 2775 30 ConfigVariableString::set_word 0 1 286 340
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
////////////////////////////////////////////////////////////////////
85
inline void ConfigVariableString::set_word(int n, basic_string< char > const &value);

1709 21 ~ConfigVariableString 0 4 2775 43 ConfigVariableString::~ConfigVariableString 0 0 0
50
ConfigVariableString::~ConfigVariableString(void);

1710 7 is_null 0 4 2779 22 PointerToVoid::is_null 0 1 302 372
////////////////////////////////////////////////////////////////////
//     Function: PointerToVoid::is_null
//       Access: Published
//  Description: Returns true if the PointerTo is a NULL pointer,
//               false otherwise.  (Direct comparison to a NULL
//               pointer also works.)
////////////////////////////////////////////////////////////////////
47
inline bool PointerToVoid::is_null(void) const;

1711 8 get_hash 0 4 2779 23 PointerToVoid::get_hash 0 1 303 219
////////////////////////////////////////////////////////////////////
//     Function: PointerToVoid::get_hash
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
56
inline unsigned int PointerToVoid::get_hash(void) const;

1712 5 clear 0 4 2778 56 PointerToBase< ReferenceCountedVector< double > >::clear 0 1 300 0
77
inline void ::PointerToBase< ReferenceCountedVector< double > >::clear(void);

1713 6 output 0 4 2778 57 PointerToBase< ReferenceCountedVector< double > >::output 0 1 301 0
85
void ::PointerToBase< ReferenceCountedVector< double > >::output(ostream &out) const;

1714 19 ~PointerToArrayBase 0 4 2777 49 PointerToArrayBase< double >::~PointerToArrayBase 0 0 0
65
inline ::PointerToArrayBase< double >::~PointerToArrayBase(void);

1715 19 ConstPointerToArray 0 4 2776 50 ConstPointerToArray< double >::ConstPointerToArray 0 3 288 289 290 0
297
inline ::ConstPointerToArray< double >::ConstPointerToArray(PointerToArray< double > const &copy);
inline ::ConstPointerToArray< double >::ConstPointerToArray(ConstPointerToArray< double > const &copy);
inline ::ConstPointerToArray< double >::ConstPointerToArray(PyObject *self, PyObject *source);

1716 4 size 0 4 2776 35 ConstPointerToArray< double >::size 0 1 291 0
70
inline unsigned int ::ConstPointerToArray< double >::size(void) const;

1717 11 get_element 0 4 2776 42 ConstPointerToArray< double >::get_element 0 1 292 0
88
inline double const &::ConstPointerToArray< double >::get_element(unsigned int n) const;

1718 11 __getitem__ 0 4 2776 42 ConstPointerToArray< double >::__getitem__ 0 1 293 0
88
inline double const &::ConstPointerToArray< double >::__getitem__(unsigned int n) const;

1719 8 get_data 0 4 2776 39 ConstPointerToArray< double >::get_data 0 1 294 0
82
inline basic_string< char > ::ConstPointerToArray< double >::get_data(void) const;

1720 11 get_subdata 0 4 2776 42 ConstPointerToArray< double >::get_subdata 0 1 295 0
115
inline basic_string< char > ::ConstPointerToArray< double >::get_subdata(unsigned int n, unsigned int count) const;

1721 13 get_ref_count 0 4 2776 44 ConstPointerToArray< double >::get_ref_count 0 1 296 0
70
inline int ::ConstPointerToArray< double >::get_ref_count(void) const;

1722 18 get_node_ref_count 0 4 2776 49 ConstPointerToArray< double >::get_node_ref_count 0 1 297 0
75
inline int ::ConstPointerToArray< double >::get_node_ref_count(void) const;

1723 13 __getbuffer__ 0 4 2776 44 ConstPointerToArray< double >::__getbuffer__ 0 1 298 0
101
int ::ConstPointerToArray< double >::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const;

1724 17 __releasebuffer__ 0 4 2776 48 ConstPointerToArray< double >::__releasebuffer__ 0 1 299 0
95
void ::ConstPointerToArray< double >::__releasebuffer__(PyObject *self, Py_buffer *view) const;

1725 20 ~ConstPointerToArray 0 4 2776 51 ConstPointerToArray< double >::~ConstPointerToArray 0 0 0
60
::ConstPointerToArray< double >::~ConstPointerToArray(void);

1726 5 clear 0 4 2783 55 PointerToBase< ReferenceCountedVector< float > >::clear 0 1 316 0
76
inline void ::PointerToBase< ReferenceCountedVector< float > >::clear(void);

1727 6 output 0 4 2783 56 PointerToBase< ReferenceCountedVector< float > >::output 0 1 317 0
84
void ::PointerToBase< ReferenceCountedVector< float > >::output(ostream &out) const;

1728 19 ~PointerToArrayBase 0 4 2782 48 PointerToArrayBase< float >::~PointerToArrayBase 0 0 0
64
inline ::PointerToArrayBase< float >::~PointerToArrayBase(void);

1729 19 ConstPointerToArray 0 4 2781 49 ConstPointerToArray< float >::ConstPointerToArray 0 3 304 305 306 0
292
inline ::ConstPointerToArray< float >::ConstPointerToArray(PointerToArray< float > const &copy);
inline ::ConstPointerToArray< float >::ConstPointerToArray(ConstPointerToArray< float > const &copy);
inline ::ConstPointerToArray< float >::ConstPointerToArray(PyObject *self, PyObject *source);

1730 4 size 0 4 2781 34 ConstPointerToArray< float >::size 0 1 307 0
69
inline unsigned int ::ConstPointerToArray< float >::size(void) const;

1731 11 get_element 0 4 2781 41 ConstPointerToArray< float >::get_element 0 1 308 0
86
inline float const &::ConstPointerToArray< float >::get_element(unsigned int n) const;

1732 11 __getitem__ 0 4 2781 41 ConstPointerToArray< float >::__getitem__ 0 1 309 0
86
inline float const &::ConstPointerToArray< float >::__getitem__(unsigned int n) const;

1733 8 get_data 0 4 2781 38 ConstPointerToArray< float >::get_data 0 1 310 0
81
inline basic_string< char > ::ConstPointerToArray< float >::get_data(void) const;

1734 11 get_subdata 0 4 2781 41 ConstPointerToArray< float >::get_subdata 0 1 311 0
114
inline basic_string< char > ::ConstPointerToArray< float >::get_subdata(unsigned int n, unsigned int count) const;

1735 13 get_ref_count 0 4 2781 43 ConstPointerToArray< float >::get_ref_count 0 1 312 0
69
inline int ::ConstPointerToArray< float >::get_ref_count(void) const;

1736 18 get_node_ref_count 0 4 2781 48 ConstPointerToArray< float >::get_node_ref_count 0 1 313 0
74
inline int ::ConstPointerToArray< float >::get_node_ref_count(void) const;

1737 13 __getbuffer__ 0 4 2781 43 ConstPointerToArray< float >::__getbuffer__ 0 1 314 0
100
int ::ConstPointerToArray< float >::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const;

1738 17 __releasebuffer__ 0 4 2781 47 ConstPointerToArray< float >::__releasebuffer__ 0 1 315 0
94
void ::ConstPointerToArray< float >::__releasebuffer__(PyObject *self, Py_buffer *view) const;

1739 20 ~ConstPointerToArray 0 4 2781 50 ConstPointerToArray< float >::~ConstPointerToArray 0 0 0
59
::ConstPointerToArray< float >::~ConstPointerToArray(void);

1740 5 clear 0 4 2786 53 PointerToBase< ReferenceCountedVector< int > >::clear 0 1 330 0
74
inline void ::PointerToBase< ReferenceCountedVector< int > >::clear(void);

1741 6 output 0 4 2786 54 PointerToBase< ReferenceCountedVector< int > >::output 0 1 331 0
82
void ::PointerToBase< ReferenceCountedVector< int > >::output(ostream &out) const;

1742 19 ~PointerToArrayBase 0 4 2785 46 PointerToArrayBase< int >::~PointerToArrayBase 0 0 0
62
inline ::PointerToArrayBase< int >::~PointerToArrayBase(void);

1743 19 ConstPointerToArray 0 4 2784 47 ConstPointerToArray< int >::ConstPointerToArray 0 3 318 319 320 0
282
inline ::ConstPointerToArray< int >::ConstPointerToArray(PointerToArray< int > const &copy);
inline ::ConstPointerToArray< int >::ConstPointerToArray(ConstPointerToArray< int > const &copy);
inline ::ConstPointerToArray< int >::ConstPointerToArray(PyObject *self, PyObject *source);

1744 4 size 0 4 2784 32 ConstPointerToArray< int >::size 0 1 321 0
67
inline unsigned int ::ConstPointerToArray< int >::size(void) const;

1745 11 get_element 0 4 2784 39 ConstPointerToArray< int >::get_element 0 1 322 0
82
inline int const &::ConstPointerToArray< int >::get_element(unsigned int n) const;

1746 11 __getitem__ 0 4 2784 39 ConstPointerToArray< int >::__getitem__ 0 1 323 0
82
inline int const &::ConstPointerToArray< int >::__getitem__(unsigned int n) const;

1747 8 get_data 0 4 2784 36 ConstPointerToArray< int >::get_data 0 1 324 0
79
inline basic_string< char > ::ConstPointerToArray< int >::get_data(void) const;

1748 11 get_subdata 0 4 2784 39 ConstPointerToArray< int >::get_subdata 0 1 325 0
112
inline basic_string< char > ::ConstPointerToArray< int >::get_subdata(unsigned int n, unsigned int count) const;

1749 13 get_ref_count 0 4 2784 41 ConstPointerToArray< int >::get_ref_count 0 1 326 0
67
inline int ::ConstPointerToArray< int >::get_ref_count(void) const;

1750 18 get_node_ref_count 0 4 2784 46 ConstPointerToArray< int >::get_node_ref_count 0 1 327 0
72
inline int ::ConstPointerToArray< int >::get_node_ref_count(void) const;

1751 13 __getbuffer__ 0 4 2784 41 ConstPointerToArray< int >::__getbuffer__ 0 1 328 0
98
int ::ConstPointerToArray< int >::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const;

1752 17 __releasebuffer__ 0 4 2784 45 ConstPointerToArray< int >::__releasebuffer__ 0 1 329 0
92
void ::ConstPointerToArray< int >::__releasebuffer__(PyObject *self, Py_buffer *view) const;

1753 20 ~ConstPointerToArray 0 4 2784 48 ConstPointerToArray< int >::~ConstPointerToArray 0 0 0
57
::ConstPointerToArray< int >::~ConstPointerToArray(void);

1754 5 clear 0 4 2789 63 PointerToBase< ReferenceCountedVector< unsigned char > >::clear 0 1 344 0
84
inline void ::PointerToBase< ReferenceCountedVector< unsigned char > >::clear(void);

1755 6 output 0 4 2789 64 PointerToBase< ReferenceCountedVector< unsigned char > >::output 0 1 345 0
92
void ::PointerToBase< ReferenceCountedVector< unsigned char > >::output(ostream &out) const;

1756 19 ~PointerToArrayBase 0 4 2788 56 PointerToArrayBase< unsigned char >::~PointerToArrayBase 0 0 0
72
inline ::PointerToArrayBase< unsigned char >::~PointerToArrayBase(void);

1757 19 ConstPointerToArray 0 4 2787 57 ConstPointerToArray< unsigned char >::ConstPointerToArray 0 3 332 333 334 0
332
inline ::ConstPointerToArray< unsigned char >::ConstPointerToArray(PointerToArray< unsigned char > const &copy);
inline ::ConstPointerToArray< unsigned char >::ConstPointerToArray(ConstPointerToArray< unsigned char > const &copy);
inline ::ConstPointerToArray< unsigned char >::ConstPointerToArray(PyObject *self, PyObject *source);

1758 4 size 0 4 2787 42 ConstPointerToArray< unsigned char >::size 0 1 335 0
77
inline unsigned int ::ConstPointerToArray< unsigned char >::size(void) const;

1759 11 get_element 0 4 2787 49 ConstPointerToArray< unsigned char >::get_element 0 1 336 0
102
inline unsigned char const &::ConstPointerToArray< unsigned char >::get_element(unsigned int n) const;

1760 11 __getitem__ 0 4 2787 49 ConstPointerToArray< unsigned char >::__getitem__ 0 1 337 0
102
inline unsigned char const &::ConstPointerToArray< unsigned char >::__getitem__(unsigned int n) const;

1761 8 get_data 0 4 2787 46 ConstPointerToArray< unsigned char >::get_data 0 1 338 0
89
inline basic_string< char > ::ConstPointerToArray< unsigned char >::get_data(void) const;

1762 11 get_subdata 0 4 2787 49 ConstPointerToArray< unsigned char >::get_subdata 0 1 339 0
122
inline basic_string< char > ::ConstPointerToArray< unsigned char >::get_subdata(unsigned int n, unsigned int count) const;

1763 13 get_ref_count 0 4 2787 51 ConstPointerToArray< unsigned char >::get_ref_count 0 1 340 0
77
inline int ::ConstPointerToArray< unsigned char >::get_ref_count(void) const;

1764 18 get_node_ref_count 0 4 2787 56 ConstPointerToArray< unsigned char >::get_node_ref_count 0 1 341 0
82
inline int ::ConstPointerToArray< unsigned char >::get_node_ref_count(void) const;

1765 13 __getbuffer__ 0 4 2787 51 ConstPointerToArray< unsigned char >::__getbuffer__ 0 1 342 0
108
int ::ConstPointerToArray< unsigned char >::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const;

1766 17 __releasebuffer__ 0 4 2787 55 ConstPointerToArray< unsigned char >::__releasebuffer__ 0 1 343 0
102
void ::ConstPointerToArray< unsigned char >::__releasebuffer__(PyObject *self, Py_buffer *view) const;

1767 20 ~ConstPointerToArray 0 4 2787 58 ConstPointerToArray< unsigned char >::~ConstPointerToArray 0 0 0
67
::ConstPointerToArray< unsigned char >::~ConstPointerToArray(void);

1768 7 GetBool 0 4 2790 16 DConfig::GetBool 0 2 346 347 0
85
static inline bool DConfig::GetBool(basic_string< char > const &sym, bool def = (0));

1769 6 GetInt 0 4 2790 15 DConfig::GetInt 0 2 348 349 0
82
static inline int DConfig::GetInt(basic_string< char > const &sym, int def = (0));

1770 8 GetFloat 0 4 2790 17 DConfig::GetFloat 0 2 350 351 0
88
static inline float DConfig::GetFloat(basic_string< char > const &sym, float def = (0));

1771 9 GetDouble 0 4 2790 18 DConfig::GetDouble 0 2 352 353 0
91
static inline double DConfig::GetDouble(basic_string< char > const &sym, double def = (0));

1772 9 GetString 0 4 2790 18 DConfig::GetString 0 2 354 355 0
127
static inline basic_string< char > DConfig::GetString(basic_string< char > const &sym, basic_string< char > const &def = (""));

1773 8 ~DConfig 0 4 2790 17 DConfig::~DConfig 0 0 0
24
DConfig::~DConfig(void);

1774 7 Results 0 4 2792 29 DSearchPath::Results::Results 0 2 381 382 0
101
DSearchPath::Results::Results(void);
DSearchPath::Results::Results(DSearchPath::Results const &copy);

1775 10 operator = 0 4 2792 32 DSearchPath::Results::operator = 0 1 383 0
72
void DSearchPath::Results::operator =(DSearchPath::Results const &copy);

1776 8 ~Results 0 4 2792 30 DSearchPath::Results::~Results 0 0 0
37
DSearchPath::Results::~Results(void);

1777 5 clear 0 4 2792 27 DSearchPath::Results::clear 0 1 384 0
39
void DSearchPath::Results::clear(void);

1778 13 get_num_files 0 4 2792 35 DSearchPath::Results::get_num_files 0 1 385 0
52
int DSearchPath::Results::get_num_files(void) const;

1779 8 get_file 0 4 2792 30 DSearchPath::Results::get_file 0 1 386 0
60
Filename const &DSearchPath::Results::get_file(int n) const;

1780 11 operator [] 0 4 2792 33 DSearchPath::Results::operator [] 0 1 387 872
// Filename: dSearchPath.I
// Created by:  drose (01Jul00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::Results::operator []
//       Access: Published
//  Description: Returns the nth filename in the set.  This method is
//               defined to make the Results object appear to be a
//               list in Python.
////////////////////////////////////////////////////////////////////
63
inline Filename DSearchPath::Results::operator [](int n) const;

1781 4 size 0 4 2792 26 DSearchPath::Results::size 0 1 388 382
////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::Results::size
//       Access: Published
//  Description: Returns the num of filenames in the set.  This method
//               is defined to make the Results object appear to be a
//               list in Python.
////////////////////////////////////////////////////////////////////
50
inline int DSearchPath::Results::size(void) const;

1782 6 output 0 4 2792 28 DSearchPath::Results::output 0 1 389 0
54
void DSearchPath::Results::output(ostream &out) const;

1783 5 write 0 4 2792 27 DSearchPath::Results::write 0 2 390 391 0
77
void DSearchPath::Results::write(ostream &out, int indent_level = (0)) const;

1784 11 DSearchPath 0 4 2791 24 DSearchPath::DSearchPath 0 5 356 357 358 359 360 0
249
DSearchPath::DSearchPath(void);
DSearchPath::DSearchPath(basic_string< char > const &path, basic_string< char > const &separator = ((string())));
DSearchPath::DSearchPath(Filename const &directory);
DSearchPath::DSearchPath(DSearchPath const &copy);

1785 10 operator = 0 4 2791 23 DSearchPath::operator = 0 1 361 0
54
void DSearchPath::operator =(DSearchPath const &copy);

1786 12 ~DSearchPath 0 4 2791 25 DSearchPath::~DSearchPath 0 0 0
32
DSearchPath::~DSearchPath(void);

1787 5 clear 0 4 2791 18 DSearchPath::clear 0 1 362 0
30
void DSearchPath::clear(void);

1788 16 append_directory 0 4 2791 29 DSearchPath::append_directory 0 1 363 0
62
void DSearchPath::append_directory(Filename const &directory);

1789 17 prepend_directory 0 4 2791 30 DSearchPath::prepend_directory 0 1 364 0
63
void DSearchPath::prepend_directory(Filename const &directory);

1790 11 append_path 0 4 2791 24 DSearchPath::append_path 0 3 365 366 367 0
174
void DSearchPath::append_path(basic_string< char > const &path, basic_string< char > const &separator = ((string())));
void DSearchPath::append_path(DSearchPath const &path);

1791 12 prepend_path 0 4 2791 25 DSearchPath::prepend_path 0 1 368 0
56
void DSearchPath::prepend_path(DSearchPath const &path);

1792 8 is_empty 0 4 2791 21 DSearchPath::is_empty 0 1 369 0
39
bool DSearchPath::is_empty(void) const;

1793 19 get_num_directories 0 4 2791 32 DSearchPath::get_num_directories 0 1 370 0
49
int DSearchPath::get_num_directories(void) const;

1794 13 get_directory 0 4 2791 26 DSearchPath::get_directory 0 1 371 0
56
Filename const &DSearchPath::get_directory(int n) const;

1795 9 find_file 0 4 2791 22 DSearchPath::find_file 0 1 372 0
64
Filename DSearchPath::find_file(Filename const &filename) const;

1796 14 find_all_files 0 4 2791 27 DSearchPath::find_all_files 0 2 373 374 445
////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::find_all_files
//       Access: Published
//  Description: This variant of find_all_files() returns the new
//               Results object, instead of filling on in on the
//               parameter list.  This is a little more convenient to
//               call from Python.
////////////////////////////////////////////////////////////////////
184
int DSearchPath::find_all_files(Filename const &filename, DSearchPath::Results &results) const;
inline DSearchPath::Results DSearchPath::find_all_files(Filename const &filename) const;

1797 11 search_path 0 4 2791 24 DSearchPath::search_path 0 2 375 376 531
////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::search_path
//       Access: Published, Static
//  Description: A quick-and-easy way to search a searchpath for a
//               file when you don't feel like building or keeping
//               around a DSearchPath object.  This simply
//               constructs a temporary DSearchPath based on the
//               indicated path string, and searches that.
////////////////////////////////////////////////////////////////////
162
static inline Filename DSearchPath::search_path(Filename const &filename, basic_string< char > const &path, basic_string< char > const &separator = ((string())));

1798 6 output 0 4 2791 19 DSearchPath::output 0 2 377 378 0
99
void DSearchPath::output(ostream &out, basic_string< char > const &separator = ((string()))) const;

1799 5 write 0 4 2791 18 DSearchPath::write 0 2 379 380 0
68
void DSearchPath::write(ostream &out, int indent_level = (0)) const;

1800 24 has_environment_variable 0 4 2793 46 ExecutionEnvironment::has_environment_variable 0 1 392 826
// Filename: executionEnvironment.I
// Created by:  drose (15May00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::has_environment_variable
//       Access: Public, Static
//  Description: Returns true if the indicated environment variable
//               is defined.
////////////////////////////////////////////////////////////////////
99
static inline bool ExecutionEnvironment::has_environment_variable(basic_string< char > const &var);

1801 24 get_environment_variable 0 4 2793 46 ExecutionEnvironment::get_environment_variable 0 1 393 396
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_environment_variable
//       Access: Public, Static
//  Description: Returns the definition of the indicated environment
//               variable, or the empty string if the variable is
//               undefined.
////////////////////////////////////////////////////////////////////
115
static inline basic_string< char > ExecutionEnvironment::get_environment_variable(basic_string< char > const &var);

1802 24 set_environment_variable 0 4 2793 46 ExecutionEnvironment::set_environment_variable 0 1 394 329
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::set_environment_variable
//       Access: Public, Static
//  Description: Changes the definition of the indicated environment
//               variable.
////////////////////////////////////////////////////////////////////
134
static inline void ExecutionEnvironment::set_environment_variable(basic_string< char > const &var, basic_string< char > const &value);

1803 27 shadow_environment_variable 0 4 2793 49 ExecutionEnvironment::shadow_environment_variable 0 1 395 588
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::shadow_environment_variable
//       Access: Public, Static
//  Description: Changes the apparent definition of the indicated
//               environment variable by masking it within this class
//               with a new value.  This does not change the actual
//               environment variable, but future calls to
//               get_environment_variable() will return this new
//               value.
////////////////////////////////////////////////////////////////////
137
static inline void ExecutionEnvironment::shadow_environment_variable(basic_string< char > const &var, basic_string< char > const &value);

1804 12 clear_shadow 0 4 2793 34 ExecutionEnvironment::clear_shadow 0 1 396 399
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::clear_shadow
//       Access: Public, Static
//  Description: Removes a value set by a previous call to
//               shadow_environment_variable(), and lets the actual
//               value of the variable show again.
////////////////////////////////////////////////////////////////////
87
static inline void ExecutionEnvironment::clear_shadow(basic_string< char > const &var);

1805 13 expand_string 0 4 2793 35 ExecutionEnvironment::expand_string 0 1 397 0
97
static basic_string< char > ExecutionEnvironment::expand_string(basic_string< char > const &str);

1806 12 get_num_args 0 4 2793 34 ExecutionEnvironment::get_num_args 0 1 398 348
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_num_args
//       Access: Public, Static
//  Description: Returns the number of command-line arguments
//               available, not counting arg 0, the binary name.
////////////////////////////////////////////////////////////////////
59
static inline int ExecutionEnvironment::get_num_args(void);

1807 7 get_arg 0 4 2793 29 ExecutionEnvironment::get_arg 0 1 399 462
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_arg
//       Access: Public, Static
//  Description: Returns the nth command-line argument.  The index n
//               must be in the range [0 .. get_num_args()).  The
//               first parameter, n == 0, is the first actual
//               parameter, not the binary name.
////////////////////////////////////////////////////////////////////
72
static inline basic_string< char > ExecutionEnvironment::get_arg(int n);

1808 15 get_binary_name 0 4 2793 37 ExecutionEnvironment::get_binary_name 0 1 400 352
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_binary_name
//       Access: Public, Static
//  Description: Returns the name of the binary executable that
//               started this program, if it can be determined.
////////////////////////////////////////////////////////////////////
79
static inline basic_string< char > ExecutionEnvironment::get_binary_name(void);

1809 14 get_dtool_name 0 4 2793 36 ExecutionEnvironment::get_dtool_name 0 1 401 349
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_dtool_name
//       Access: Public, Static
//  Description: Returns the name of the libdtool DLL that
//               is used in this program, if it can be determined.
////////////////////////////////////////////////////////////////////
78
static inline basic_string< char > ExecutionEnvironment::get_dtool_name(void);

1810 7 get_cwd 0 4 2793 29 ExecutionEnvironment::get_cwd 0 1 402 0
52
static Filename ExecutionEnvironment::get_cwd(void);

1811 21 ~ExecutionEnvironment 0 4 2793 43 ExecutionEnvironment::~ExecutionEnvironment 0 0 0
50
ExecutionEnvironment::~ExecutionEnvironment(void);

1812 9 ~ios_base 0 4 2798 19 ios_base::~ios_base 0 0 0
26
ios_base::~ios_base(void);

1813 4 good 0 4 2797 9 ios::good 0 1 425 0
27
bool ios::good(void) const;

1814 3 eof 0 4 2797 8 ios::eof 0 1 426 0
26
bool ios::eof(void) const;

1815 4 fail 0 4 2797 9 ios::fail 0 1 427 0
27
bool ios::fail(void) const;

1816 3 bad 0 4 2797 8 ios::bad 0 1 428 0
26
bool ios::bad(void) const;

1817 5 clear 0 4 2797 10 ios::clear 0 1 429 0
22
void ios::clear(void);

1818 4 ~ios 0 4 2797 9 ios::~ios 0 0 0
16
ios::~ios(void);

1819 13 upcast_to_ios 0 12 2796 22 istream::upcast_to_ios 0 1 416 26
upcast from istream to ios
34
ios *istream::upcast_to_ios(void);

1820 3 get 0 4 2796 12 istream::get 0 1 412 0
23
int istream::get(void);

1821 5 tellg 0 4 2796 14 istream::tellg 0 1 413 0
39
unsigned long int istream::tellg(void);

1822 5 seekg 0 4 2796 14 istream::seekg 0 2 414 415 0
101
void istream::seekg(unsigned long int pos);
void istream::seekg(long int off, ios_base::seekdir dir);

1823 8 ~istream 0 4 2796 17 istream::~istream 0 0 0
24
istream::~istream(void);

1824 17 upcast_to_istream 0 12 2795 27 iostream::upcast_to_istream 0 1 410 31
upcast from iostream to istream
43
istream *iostream::upcast_to_istream(void);

1825 20 downcast_to_iostream 0 12 2796 29 istream::downcast_to_iostream 0 1 411 33
downcast from istream to iostream
46
iostream *istream::downcast_to_iostream(void);

1826 13 upcast_to_ios 0 12 2801 22 ostream::upcast_to_ios 0 1 424 26
upcast from ostream to ios
34
ios *ostream::upcast_to_ios(void);

1827 3 put 0 4 2801 12 ostream::put 0 1 419 0
26
void ostream::put(char c);

1828 5 flush 0 4 2801 14 ostream::flush 0 1 420 0
26
void ostream::flush(void);

1829 5 tellp 0 4 2801 14 ostream::tellp 0 1 421 0
39
unsigned long int ostream::tellp(void);

1830 5 seekp 0 4 2801 14 ostream::seekp 0 2 422 423 0
101
void ostream::seekp(unsigned long int pos);
void ostream::seekp(long int off, ios_base::seekdir dir);

1831 8 ~ostream 0 4 2801 17 ostream::~ostream 0 0 0
24
ostream::~ostream(void);

1832 17 upcast_to_ostream 0 12 2795 27 iostream::upcast_to_ostream 0 1 417 31
upcast from iostream to ostream
43
ostream *iostream::upcast_to_ostream(void);

1833 20 downcast_to_iostream 0 12 2801 29 ostream::downcast_to_iostream 0 1 418 33
downcast from ostream to iostream
46
iostream *ostream::downcast_to_iostream(void);

1834 5 flush 0 4 2795 15 iostream::flush 0 1 409 0
27
void iostream::flush(void);

1835 9 ~iostream 0 4 2795 19 iostream::~iostream 0 0 0
26
iostream::~iostream(void);

1836 10 FileStream 0 4 2794 22 FileStream::FileStream 0 3 403 404 405 446
////////////////////////////////////////////////////////////////////
//     Function: FileStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: FileStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
126
inline FileStream::FileStream(void);
inline FileStream::FileStream(char const *filename, ios_base::openmode mode = (ios::in));

1837 11 ~FileStream 0 4 2794 23 FileStream::~FileStream 0 0 221
////////////////////////////////////////////////////////////////////
//     Function: FileStream::Destructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
37
inline FileStream::~FileStream(void);

1838 4 open 0 4 2794 16 FileStream::open 0 2 406 407 216
////////////////////////////////////////////////////////////////////
//     Function: FileStream::open
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
88
inline void FileStream::open(char const *filename, ios_base::openmode mode = (ios::in));

1839 5 close 0 4 2794 17 FileStream::close 0 1 408 217
////////////////////////////////////////////////////////////////////
//     Function: FileStream::close
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
36
inline void FileStream::close(void);

1840 8 Filename 0 4 2802 18 Filename::Filename 0 6 430 431 432 433 434 435 1375
// Filename: filename.I
// Created by:  drose (18Jan99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Filename::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Filename::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Filename::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Filename::Copy Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
308
inline Filename::Filename(basic_string< char > const &filename = (""));
inline Filename::Filename(basic_string< wchar_t > const &filename);
inline Filename::Filename(char const *filename);
inline Filename::Filename(Filename const &copy);
Filename::Filename(Filename const &dirname, Filename const &basename);

1841 9 ~Filename 0 4 2802 19 Filename::~Filename 0 0 219
////////////////////////////////////////////////////////////////////
//     Function: Filename::Destructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
33
inline Filename::~Filename(void);

1842 10 __reduce__ 0 4 2802 20 Filename::__reduce__ 0 1 436 0
53
PyObject *Filename::__reduce__(PyObject *self) const;

1843 13 text_filename 0 4 2802 23 Filename::text_filename 0 2 437 438 822
// Static constructors to explicitly create a filename that refers
// to a text or binary file.  This is in lieu of calling set_text()
// or set_binary() or set_type().

// Static constructors to explicitly create a filename that refers
// to a text or binary file.  This is in lieu of calling set_text()
// or set_binary() or set_type().

////////////////////////////////////////////////////////////////////
//     Function: Filename::text_filename named constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Filename::text_filename named constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
159
static inline Filename Filename::text_filename(Filename const &filename);
static inline Filename Filename::text_filename(basic_string< char > const &filename);

1844 15 binary_filename 0 4 2802 25 Filename::binary_filename 0 2 439 440 486
////////////////////////////////////////////////////////////////////
//     Function: Filename::binary_filename named constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Filename::binary_filename named constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
163
static inline Filename Filename::binary_filename(Filename const &filename);
static inline Filename Filename::binary_filename(basic_string< char > const &filename);

1845 12 dso_filename 0 4 2802 22 Filename::dso_filename 0 1 441 239
////////////////////////////////////////////////////////////////////
//     Function: Filename::dso_filename named constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
84
static inline Filename Filename::dso_filename(basic_string< char > const &filename);

1846 19 executable_filename 0 4 2802 29 Filename::executable_filename 0 1 442 246
////////////////////////////////////////////////////////////////////
//     Function: Filename::executable_filename named constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
91
static inline Filename Filename::executable_filename(basic_string< char > const &filename);

1847 16 pattern_filename 0 4 2802 26 Filename::pattern_filename 0 1 443 348
////////////////////////////////////////////////////////////////////
//     Function: Filename::pattern_filename named constructor
//       Access: Published
//  Description: Constructs a filename that represents a sequence of
//               numbered files.  See set_pattern().
////////////////////////////////////////////////////////////////////
88
static inline Filename Filename::pattern_filename(basic_string< char > const &filename);

1848 16 from_os_specific 0 4 2802 26 Filename::from_os_specific 0 2 444 445 0
119
static Filename Filename::from_os_specific(basic_string< char > const &os_specific, Filename::Type type = (T_general));

1849 18 from_os_specific_w 0 4 2802 28 Filename::from_os_specific_w 0 2 446 447 0
124
static Filename Filename::from_os_specific_w(basic_string< wchar_t > const &os_specific, Filename::Type type = (T_general));

1850 11 expand_from 0 4 2802 21 Filename::expand_from 0 2 448 449 0
114
static Filename Filename::expand_from(basic_string< char > const &user_string, Filename::Type type = (T_general));

1851 9 temporary 0 4 2802 19 Filename::temporary 0 3 450 451 452 0
195
static Filename Filename::temporary(basic_string< char > const &dirname, basic_string< char > const &prefix, basic_string< char > const &suffix = ((string())), Filename::Type type = (T_general));

1852 18 get_home_directory 0 4 2802 28 Filename::get_home_directory 0 1 453 0
58
static Filename const &Filename::get_home_directory(void);

1853 18 get_temp_directory 0 4 2802 28 Filename::get_temp_directory 0 1 454 0
58
static Filename const &Filename::get_temp_directory(void);

1854 26 get_user_appdata_directory 0 4 2802 36 Filename::get_user_appdata_directory 0 1 455 0
66
static Filename const &Filename::get_user_appdata_directory(void);

1855 28 get_common_appdata_directory 0 4 2802 38 Filename::get_common_appdata_directory 0 1 456 0
68
static Filename const &Filename::get_common_appdata_directory(void);

1856 10 operator = 0 4 2802 20 Filename::operator = 0 4 457 458 459 460 999
// Assignment is via the = operator.

// Assignment is via the = operator.

////////////////////////////////////////////////////////////////////
//     Function: Filename::Assignment operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Filename::Assignment operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Filename::Assignment operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Filename::Copy assignment operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
278
inline Filename &Filename::operator =(basic_string< char > const &filename);
inline Filename &Filename::operator =(basic_string< wchar_t > const &filename);
inline Filename &Filename::operator =(char const *filename);
inline Filename &Filename::operator =(Filename const &copy);

1857 17 operator typecast 0 132 2802 27 Filename::operator typecast 0 1 558 295
// And retrieval is by any of the classic string operations.

////////////////////////////////////////////////////////////////////
//     Function: Filename::string typecast operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
75
inline basic_string< char > const &Filename::operator typecast(void) const;

1858 5 c_str 0 4 2802 15 Filename::c_str 0 1 461 276
// And retrieval is by any of the classic string operations.

////////////////////////////////////////////////////////////////////
//     Function: Filename::c_str
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
47
inline char const *Filename::c_str(void) const;

1859 5 empty 0 4 2802 15 Filename::empty 0 1 462 214
////////////////////////////////////////////////////////////////////
//     Function: Filename::empty
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
40
inline bool Filename::empty(void) const;

1860 6 length 0 4 2802 16 Filename::length 0 1 463 215
////////////////////////////////////////////////////////////////////
//     Function: Filename::length
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
49
inline unsigned int Filename::length(void) const;

1861 11 operator [] 0 4 2802 21 Filename::operator [] 0 1 464 226
////////////////////////////////////////////////////////////////////
//     Function: Filename::Indexing operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
47
inline char Filename::operator [](int n) const;

1862 6 substr 0 4 2802 16 Filename::substr 0 2 465 466 215
////////////////////////////////////////////////////////////////////
//     Function: Filename::substr
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
106
inline basic_string< char > Filename::substr(unsigned int begin, unsigned int end = (string::npos)) const;

1863 11 operator += 0 4 2802 21 Filename::operator += 0 1 467 413
////////////////////////////////////////////////////////////////////
//     Function: Filename::operator +=
//       Access: Published
//  Description: Appends the other filename onto the end of this one.
//               This does not introduce an intervening slash, but see
//               the Filename constructor that takes two parameters.
////////////////////////////////////////////////////////////////////
69
inline void Filename::operator +=(basic_string< char > const &other);

1864 10 operator + 0 4 2802 20 Filename::operator + 0 1 468 312
////////////////////////////////////////////////////////////////////
//     Function: Filename::operator +
//       Access: Published
//  Description: Returns a new Filename representing the concatenation
//               of the two filenames.
////////////////////////////////////////////////////////////////////
78
inline Filename Filename::operator +(basic_string< char > const &other) const;

1865 12 get_fullpath 0 4 2802 22 Filename::get_fullpath 0 1 469 416
// Or, you can use any of these.

////////////////////////////////////////////////////////////////////
//     Function: Filename::get_fullpath
//       Access: Published
//  Description: Returns the entire filename: directory, basename,
//               extension.  This is the same thing returned by the
//               string typecast operator.
////////////////////////////////////////////////////////////////////
63
inline basic_string< char > Filename::get_fullpath(void) const;

1866 14 get_fullpath_w 0 4 2802 24 Filename::get_fullpath_w 0 1 470 330
// Or, you can use any of these.

////////////////////////////////////////////////////////////////////
//     Function: Filename::get_fullpath_w
//       Access: Published
//  Description: Returns the entire filename as a wide-character
//               string.
////////////////////////////////////////////////////////////////////
68
inline basic_string< wchar_t > Filename::get_fullpath_w(void) const;

1867 11 get_dirname 0 4 2802 21 Filename::get_dirname 0 1 471 380
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_dirname
//       Access: Published
//  Description: Returns the directory part of the filename.  This is
//               everything in the filename up to, but not including
//               the rightmost slash.
////////////////////////////////////////////////////////////////////
62
inline basic_string< char > Filename::get_dirname(void) const;

1868 12 get_basename 0 4 2802 22 Filename::get_basename 0 1 472 387
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_basename
//       Access: Published
//  Description: Returns the basename part of the filename.  This is
//               everything in the filename after the rightmost slash,
//               including any extensions.
////////////////////////////////////////////////////////////////////
63
inline basic_string< char > Filename::get_basename(void) const;

1869 25 get_fullpath_wo_extension 0 4 2802 35 Filename::get_fullpath_wo_extension 0 1 473 334
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_fullpath_wo_extension
//       Access: Published
//  Description: Returns the full filename--directory and basename
//               parts--except for the extension.
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > Filename::get_fullpath_wo_extension(void) const;

1870 25 get_basename_wo_extension 0 4 2802 35 Filename::get_basename_wo_extension 0 1 474 322
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_basename_wo_extension
//       Access: Published
//  Description: Returns the basename part of the filename, without
//               the file extension.
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > Filename::get_basename_wo_extension(void) const;

1871 13 get_extension 0 4 2802 23 Filename::get_extension 0 1 475 383
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_extension
//       Access: Published
//  Description: Returns the file extension.  This is everything after
//               the rightmost dot, if there is one, or the empty
//               string if there is not.
////////////////////////////////////////////////////////////////////
64
inline basic_string< char > Filename::get_extension(void) const;

1872 12 set_fullpath 0 4 2802 22 Filename::set_fullpath 0 1 476 68
// You can also use any of these to reassign pieces of the filename.
59
void Filename::set_fullpath(basic_string< char > const &s);

1873 11 set_dirname 0 4 2802 21 Filename::set_dirname 0 1 477 68
// You can also use any of these to reassign pieces of the filename.
58
void Filename::set_dirname(basic_string< char > const &s);

1874 12 set_basename 0 4 2802 22 Filename::set_basename 0 1 478 0
59
void Filename::set_basename(basic_string< char > const &s);

1875 25 set_fullpath_wo_extension 0 4 2802 35 Filename::set_fullpath_wo_extension 0 1 479 0
72
void Filename::set_fullpath_wo_extension(basic_string< char > const &s);

1876 25 set_basename_wo_extension 0 4 2802 35 Filename::set_basename_wo_extension 0 1 480 0
72
void Filename::set_basename_wo_extension(basic_string< char > const &s);

1877 13 set_extension 0 4 2802 23 Filename::set_extension 0 1 481 0
60
void Filename::set_extension(basic_string< char > const &s);

1878 10 set_binary 0 4 2802 20 Filename::set_binary 0 1 482 682
// Setting these flags appropriately is helpful when opening or
// searching for a file; it helps the Filename resolve OS-specific
// conventions (for instance, that dynamic library names should
// perhaps be changed from .so to .dll).

////////////////////////////////////////////////////////////////////
//     Function: Filename::set_binary
//       Access: Published
//  Description: Indicates that the filename represents a binary file.
//               This is primarily relevant to the read_file() and
//               write_file() methods, so they can set the appropriate
//               flags to the OS.
////////////////////////////////////////////////////////////////////
39
inline void Filename::set_binary(void);

1879 8 set_text 0 4 2802 18 Filename::set_text 0 1 483 678
// Setting these flags appropriately is helpful when opening or
// searching for a file; it helps the Filename resolve OS-specific
// conventions (for instance, that dynamic library names should
// perhaps be changed from .so to .dll).

////////////////////////////////////////////////////////////////////
//     Function: Filename::set_text
//       Access: Published
//  Description: Indicates that the filename represents a text file.
//               This is primarily relevant to the read_file() and
//               write_file() methods, so they can set the appropriate
//               flags to the OS.
////////////////////////////////////////////////////////////////////
37
inline void Filename::set_text(void);

1880 9 is_binary 0 4 2802 19 Filename::is_binary 0 1 484 523
////////////////////////////////////////////////////////////////////
//     Function: Filename::is_binary
//       Access: Published
//  Description: Returns true if the Filename has been indicated to
//               represent a binary file via a previous call to
//               set_binary().  It is possible that neither
//               is_binary() nor is_text() will be true, if neither
//               set_binary() nor set_text() was ever called.
////////////////////////////////////////////////////////////////////
44
inline bool Filename::is_binary(void) const;

1881 7 is_text 0 4 2802 17 Filename::is_text 0 1 485 517
////////////////////////////////////////////////////////////////////
//     Function: Filename::is_text
//       Access: Published
//  Description: Returns true if the Filename has been indicated to
//               represent a text file via a previous call to
//               set_text().  It is possible that neither is_binary()
//               nor is_text() will be true, if neither set_binary()
//               nor set_text() was ever called.
////////////////////////////////////////////////////////////////////
42
inline bool Filename::is_text(void) const;

1882 17 is_binary_or_text 0 4 2802 27 Filename::is_binary_or_text 0 1 486 459
////////////////////////////////////////////////////////////////////
//     Function: Filename::is_binary_or_text
//       Access: Published
//  Description: Returns true either is_binary() or is_text() is true;
//               that is, that the filename has been specified as
//               either binary or text.  If this is false, the
//               filename has not been specified.
////////////////////////////////////////////////////////////////////
52
inline bool Filename::is_binary_or_text(void) const;

1883 8 set_type 0 4 2802 18 Filename::set_type 0 1 487 646
////////////////////////////////////////////////////////////////////
//     Function: Filename::set_type
//       Access: Published
//  Description: Sets the type of the file represented by the
//               filename.  This is useful for to_os_specific(),
//               resolve_filename(), test_existence(), and all such
//               real-world access functions.  It helps the Filename
//               know how to map the internal filename to the
//               OS-specific filename (for instance, maybe executables
//               should have an .exe extension).
////////////////////////////////////////////////////////////////////
52
inline void Filename::set_type(Filename::Type type);

1884 8 get_type 0 4 2802 18 Filename::get_type 0 1 488 325
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_type
//       Access: Published
//  Description: Returns the type of the file represented by the
//               filename, as previously set by set_type().
////////////////////////////////////////////////////////////////////
53
inline Filename::Type Filename::get_type(void) const;

1885 11 set_pattern 0 4 2802 21 Filename::set_pattern 0 1 489 1075
////////////////////////////////////////////////////////////////////
//     Function: Filename::set_pattern
//       Access: Published
//  Description: Sets the flag indicating whether this is a filename
//               pattern.  When this is true, the filename is
//               understood to be a placeholder for a numbered
//               sequence of filename, such as an image sequence.  In
//               this case, a sequence of one or more hash characters
//               ("#") should appear in the filename string; these
//               characters will be filled in with the corresponding
//               number (or more) of digits representing the sequence
//               number.  Sequence numbers always begin counting at 0.
//
//               When this is true, methods like has_hash() and
//               get_hash_to_end() and get_filename_index() may be
//               called.  Methods like is_exists() will implicitly
//               test for existance of filename sequence 0.
////////////////////////////////////////////////////////////////////
48
inline void Filename::set_pattern(bool pattern);

1886 11 get_pattern 0 4 2802 21 Filename::get_pattern 0 1 490 321
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_pattern
//       Access: Published
//  Description: Returns the flag indicating whether this is a
//               filename pattern.  See set_pattern().
////////////////////////////////////////////////////////////////////
46
inline bool Filename::get_pattern(void) const;

1887 8 has_hash 0 4 2802 18 Filename::has_hash 0 1 491 651
////////////////////////////////////////////////////////////////////
//     Function: Filename::has_hash
//       Access: Published
//  Description: Returns true if the filename is indicated to be a
//               filename pattern (that is, set_pattern(true) was
//               called), and the filename pattern did include a
//               sequence of hash marks, or false if it was not a
//               filename pattern or did not include hash marks.  If
//               this is true, then get_filename_index() will return a
//               different filename each time.
////////////////////////////////////////////////////////////////////
43
inline bool Filename::has_hash(void) const;

1888 18 get_filename_index 0 4 2802 28 Filename::get_filename_index 0 1 492 0
55
Filename Filename::get_filename_index(int index) const;

1889 15 get_hash_to_end 0 4 2802 25 Filename::get_hash_to_end 0 1 493 375
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_hash_to_end
//       Access: Published
//  Description: Returns the part of the filename beginning at the
//               hash sequence (if any), and continuing to the end of
//               the filename.
////////////////////////////////////////////////////////////////////
66
inline basic_string< char > Filename::get_hash_to_end(void) const;

1890 15 set_hash_to_end 0 4 2802 25 Filename::set_hash_to_end 0 1 494 0
62
void Filename::set_hash_to_end(basic_string< char > const &s);

1891 18 extract_components 0 4 2802 28 Filename::extract_components 0 1 495 0
84
void Filename::extract_components(vector< basic_string< char > > &components) const;

1892 11 standardize 0 4 2802 21 Filename::standardize 0 1 496 0
33
void Filename::standardize(void);

1893 8 is_local 0 4 2802 18 Filename::is_local 0 1 497 440
// The following functions deal with the outside world.

////////////////////////////////////////////////////////////////////
//     Function: Filename::is_local
//       Access: Published
//  Description: Returns true if the filename is local, e.g. does not
//               begin with a slash, or false if the filename is fully
//               specified from the root.
////////////////////////////////////////////////////////////////////
43
inline bool Filename::is_local(void) const;

1894 18 is_fully_qualified 0 4 2802 28 Filename::is_fully_qualified 0 1 498 782
////////////////////////////////////////////////////////////////////
//     Function: Filename::is_fully_qualified
//       Access: Published
//  Description: Returns true if the filename is fully qualified,
//               e.g. begins with a slash.  This is almost, but not
//               quite, the same thing as !is_local().  It's not
//               exactly the same because a special case is made for
//               filenames that begin with a single dot followed by a
//               slash--these are considered to be fully qualified
//               (they are explicitly relative to the current
//               directory, and do not refer to a filename on a search
//               path somewhere).
////////////////////////////////////////////////////////////////////
53
inline bool Filename::is_fully_qualified(void) const;

1895 13 make_absolute 0 4 2802 23 Filename::make_absolute 0 2 499 500 0
98
void Filename::make_absolute(void);
void Filename::make_absolute(Filename const &start_directory);

1896 14 make_canonical 0 4 2802 24 Filename::make_canonical 0 1 501 0
36
bool Filename::make_canonical(void);

1897 14 make_true_case 0 4 2802 24 Filename::make_true_case 0 1 502 0
36
bool Filename::make_true_case(void);

1898 14 to_os_specific 0 4 2802 24 Filename::to_os_specific 0 1 503 0
58
basic_string< char > Filename::to_os_specific(void) const;

1899 16 to_os_specific_w 0 4 2802 26 Filename::to_os_specific_w 0 1 504 0
63
basic_string< wchar_t > Filename::to_os_specific_w(void) const;

1900 13 to_os_generic 0 4 2802 23 Filename::to_os_generic 0 1 505 0
57
basic_string< char > Filename::to_os_generic(void) const;

1901 16 to_os_short_name 0 4 2802 26 Filename::to_os_short_name 0 1 506 0
60
basic_string< char > Filename::to_os_short_name(void) const;

1902 15 to_os_long_name 0 4 2802 25 Filename::to_os_long_name 0 1 507 0
59
basic_string< char > Filename::to_os_long_name(void) const;

1903 6 exists 0 4 2802 16 Filename::exists 0 1 508 0
34
bool Filename::exists(void) const;

1904 15 is_regular_file 0 4 2802 25 Filename::is_regular_file 0 1 509 0
43
bool Filename::is_regular_file(void) const;

1905 11 is_writable 0 4 2802 21 Filename::is_writable 0 1 510 0
39
bool Filename::is_writable(void) const;

1906 12 is_directory 0 4 2802 22 Filename::is_directory 0 1 511 0
40
bool Filename::is_directory(void) const;

1907 13 is_executable 0 4 2802 23 Filename::is_executable 0 1 512 0
41
bool Filename::is_executable(void) const;

1908 18 compare_timestamps 0 4 2802 28 Filename::compare_timestamps 0 3 513 514 515 0
127
int Filename::compare_timestamps(Filename const &other, bool this_missing_is_old = (1), bool other_missing_is_old = (1)) const;

1909 13 get_timestamp 0 4 2802 23 Filename::get_timestamp 0 1 516 0
49
unsigned int Filename::get_timestamp(void) const;

1910 20 get_access_timestamp 0 4 2802 30 Filename::get_access_timestamp 0 1 517 0
56
unsigned int Filename::get_access_timestamp(void) const;

1911 13 get_file_size 0 4 2802 23 Filename::get_file_size 0 1 518 0
40
int Filename::get_file_size(void) const;

1912 16 resolve_filename 0 4 2802 26 Filename::resolve_filename 0 2 519 520 0
125
bool Filename::resolve_filename(DSearchPath const &searchpath, basic_string< char > const &default_extension = ((string())));

1913 16 make_relative_to 0 4 2802 26 Filename::make_relative_to 0 2 521 522 0
78
bool Filename::make_relative_to(Filename directory, bool allow_backups = (1));

1914 18 find_on_searchpath 0 4 2802 28 Filename::find_on_searchpath 0 1 523 0
64
int Filename::find_on_searchpath(DSearchPath const &searchpath);

1915 14 scan_directory 0 4 2802 24 Filename::scan_directory 0 2 524 525 0
126
bool Filename::scan_directory(vector< basic_string< char > > &contents) const;
PyObject *Filename::scan_directory(void) const;

1916 9 open_read 0 4 2802 19 Filename::open_read 0 2 526 527 0
102
bool Filename::open_read(ifstream &stream) const;
bool Filename::open_read(IFileStream &stream) const;

1917 10 open_write 0 4 2802 20 Filename::open_write 0 4 528 529 530 531 0
146
bool Filename::open_write(ofstream &stream, bool truncate = (1)) const;
bool Filename::open_write(OFileStream &stream, bool truncate = (1)) const;

1918 11 open_append 0 4 2802 21 Filename::open_append 0 2 532 533 0
106
bool Filename::open_append(ofstream &stream) const;
bool Filename::open_append(OFileStream &stream) const;

1919 15 open_read_write 0 4 2802 25 Filename::open_read_write 0 4 534 535 536 537 0
154
bool Filename::open_read_write(fstream &stream, bool truncate = (0)) const;
bool Filename::open_read_write(FileStream &stream, bool truncate = (0)) const;

1920 16 open_read_append 0 4 2802 26 Filename::open_read_append 0 2 538 539 0
114
bool Filename::open_read_append(fstream &stream) const;
bool Filename::open_read_append(FileStream &stream) const;

1921 5 chdir 0 4 2802 15 Filename::chdir 0 1 540 22
// USE_PANDAFILESTREAM
33
bool Filename::chdir(void) const;

1922 5 touch 0 4 2802 15 Filename::touch 0 1 541 0
33
bool Filename::touch(void) const;

1923 6 unlink 0 4 2802 16 Filename::unlink 0 1 542 0
34
bool Filename::unlink(void) const;

1924 9 rename_to 0 4 2802 19 Filename::rename_to 0 1 543 0
54
bool Filename::rename_to(Filename const &other) const;

1925 7 copy_to 0 4 2802 17 Filename::copy_to 0 1 544 0
52
bool Filename::copy_to(Filename const &other) const;

1926 8 make_dir 0 4 2802 18 Filename::make_dir 0 1 545 0
36
bool Filename::make_dir(void) const;

1927 5 mkdir 0 4 2802 15 Filename::mkdir 0 1 546 0
33
bool Filename::mkdir(void) const;

1928 5 rmdir 0 4 2802 15 Filename::rmdir 0 1 547 0
33
bool Filename::rmdir(void) const;

1929 11 operator == 0 4 2802 21 Filename::operator == 0 1 548 262
// Comparison operators are handy.

////////////////////////////////////////////////////////////////////
//     Function: Filename::Equality operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
75
inline bool Filename::operator ==(basic_string< char > const &other) const;

1930 11 operator != 0 4 2802 21 Filename::operator != 0 1 549 264
// Comparison operators are handy.

////////////////////////////////////////////////////////////////////
//     Function: Filename::Inequality operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
75
inline bool Filename::operator !=(basic_string< char > const &other) const;

1931 10 operator < 0 4 2802 20 Filename::operator < 0 1 550 226
////////////////////////////////////////////////////////////////////
//     Function: Filename::Ordering operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
74
inline bool Filename::operator <(basic_string< char > const &other) const;

1932 10 compare_to 0 4 2802 20 Filename::compare_to 0 1 551 219
////////////////////////////////////////////////////////////////////
//     Function: Filename::compare_to
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
61
inline int Filename::compare_to(Filename const &other) const;

1933 11 __nonzero__ 0 4 2802 21 Filename::__nonzero__ 0 1 552 646
////////////////////////////////////////////////////////////////////
//     Function: Filename::__nonzero__
//       Access: Published
//  Description: Returns true if the Filename is valid (not empty),
//               or false if it is an empty string.
//
//               This implements the Python equivalent to operator
//               bool.  Defining an actual operator bool method for
//               C++ use would work too, but it seems to cause too
//               many ambiguities for the C++ compiler, so we use this
//               Python-only approach instead.
////////////////////////////////////////////////////////////////////
46
inline bool Filename::__nonzero__(void) const;

1934 8 get_hash 0 4 2802 18 Filename::get_hash 0 1 553 0
35
int Filename::get_hash(void) const;

1935 6 output 0 4 2802 16 Filename::output 0 1 554 215
////////////////////////////////////////////////////////////////////
//     Function: Filename::output
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
49
inline void Filename::output(ostream &out) const;

1936 23 set_filesystem_encoding 0 4 2802 33 Filename::set_filesystem_encoding 0 1 555 557
////////////////////////////////////////////////////////////////////
//     Function: Filename::set_filesystem_encoding
//       Access: Published, Static
//  Description: Specifies the default encoding to be used for all
//               subsequent Filenames.  This is used to represent
//               wide-character (Unicode) filenames internally.  On
//               non-Windows-based systems, the encoded filename is
//               also passed to the underlying operating system.
////////////////////////////////////////////////////////////////////
85
static inline void Filename::set_filesystem_encoding(TextEncoder::Encoding encoding);

1937 23 get_filesystem_encoding 0 4 2802 33 Filename::get_filesystem_encoding 0 1 556 386
////////////////////////////////////////////////////////////////////
//     Function: Filename::get_filesystem_encoding
//       Access: Published, Static
//  Description: Specifies the default encoding to be used for all
//               subsequent Filenames objects.  See
//               set_filesystem_encoding().
////////////////////////////////////////////////////////////////////
76
static inline TextEncoder::Encoding Filename::get_filesystem_encoding(void);

1938 14 get_class_type 0 4 2802 24 Filename::get_class_type 0 1 557 0
49
static TypeHandle Filename::get_class_type(void);

1939 11 GlobPattern 0 4 2804 24 GlobPattern::GlobPattern 0 3 559 560 561 934
// Filename: globPattern.I
// Created by:  drose (30May00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::Copy Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
142
inline GlobPattern::GlobPattern(basic_string< char > const &pattern = ((string())));
inline GlobPattern::GlobPattern(GlobPattern const &copy);

1940 10 operator = 0 4 2804 23 GlobPattern::operator = 0 1 562 233
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::Copy Assignment Operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
61
inline void GlobPattern::operator =(GlobPattern const &copy);

1941 11 operator == 0 4 2804 24 GlobPattern::operator == 0 1 563 220
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::operator ==
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
69
inline bool GlobPattern::operator ==(GlobPattern const &other) const;

1942 11 operator != 0 4 2804 24 GlobPattern::operator != 0 1 564 220
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::operator !=
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
69
inline bool GlobPattern::operator !=(GlobPattern const &other) const;

1943 10 operator < 0 4 2804 23 GlobPattern::operator < 0 1 565 219
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::operator <
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
68
inline bool GlobPattern::operator <(GlobPattern const &other) const;

1944 11 set_pattern 0 4 2804 24 GlobPattern::set_pattern 0 1 566 301
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::set_pattern
//       Access: Public
//  Description: Changes the pattern string that the GlobPattern
//               object matches.
////////////////////////////////////////////////////////////////////
74
inline void GlobPattern::set_pattern(basic_string< char > const &pattern);

1945 11 get_pattern 0 4 2804 24 GlobPattern::get_pattern 0 1 567 301
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::get_pattern
//       Access: Public
//  Description: Returns the pattern string that the GlobPattern
//               object matches.
////////////////////////////////////////////////////////////////////
72
inline basic_string< char > const &GlobPattern::get_pattern(void) const;

1946 18 set_case_sensitive 0 4 2804 31 GlobPattern::set_case_sensitive 0 1 568 370
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::set_case_sensitive
//       Access: Public
//  Description: Sets whether the match is case sensitive (true) or
//               case insensitive (false).  The default is case
//               sensitive.
////////////////////////////////////////////////////////////////////
65
inline void GlobPattern::set_case_sensitive(bool case_sensitive);

1947 18 get_case_sensitive 0 4 2804 31 GlobPattern::get_case_sensitive 0 1 569 373
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::get_case_sensitive
//       Access: Public
//  Description: Returns whether the match is case sensitive (true) or
//               case insensitive (false).  The default is case
//               sensitive.
////////////////////////////////////////////////////////////////////
56
inline bool GlobPattern::get_case_sensitive(void) const;

1948 17 set_nomatch_chars 0 4 2804 30 GlobPattern::set_nomatch_chars 0 1 570 305
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::set_nomatch_chars
//       Access: Public
//  Description: Specifies a set of characters that are not matched by
//               * or ?.
////////////////////////////////////////////////////////////////////
86
inline void GlobPattern::set_nomatch_chars(basic_string< char > const &nomatch_chars);

1949 17 get_nomatch_chars 0 4 2804 30 GlobPattern::get_nomatch_chars 0 1 571 305
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::get_nomatch_chars
//       Access: Public
//  Description: Returns the set of characters that are not matched by
//               * or ?.
////////////////////////////////////////////////////////////////////
78
inline basic_string< char > const &GlobPattern::get_nomatch_chars(void) const;

1950 7 matches 0 4 2804 20 GlobPattern::matches 0 1 572 308
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::matches
//       Access: Public
//  Description: Returns true if the candidate string matches the
//               pattern, false otherwise.
////////////////////////////////////////////////////////////////////
78
inline bool GlobPattern::matches(basic_string< char > const &candidate) const;

1951 6 output 0 4 2804 19 GlobPattern::output 0 1 573 215
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::output
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
52
inline void GlobPattern::output(ostream &out) const;

1952 19 has_glob_characters 0 4 2804 32 GlobPattern::has_glob_characters 0 1 574 0
50
bool GlobPattern::has_glob_characters(void) const;

1953 16 get_const_prefix 0 4 2804 29 GlobPattern::get_const_prefix 0 1 575 0
63
basic_string< char > GlobPattern::get_const_prefix(void) const;

1954 11 match_files 0 4 2804 24 GlobPattern::match_files 0 4 576 577 578 579 0
178
int GlobPattern::match_files(vector< basic_string< char > > &results, Filename const &cwd = ((()))) const;
PyObject *GlobPattern::match_files(Filename const &cwd = ((()))) const;

1955 12 ~GlobPattern 0 4 2804 25 GlobPattern::~GlobPattern 0 0 0
32
GlobPattern::~GlobPattern(void);

1956 14 IDecryptStream 0 4 2805 30 IDecryptStream::IDecryptStream 0 2 580 581 943
// Filename: encryptStream.I
// Created by:  drose (01Sep04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
156
inline IDecryptStream::IDecryptStream(void);
inline IDecryptStream::IDecryptStream(istream *source, bool owns_source, basic_string< char > const &password);

1957 4 open 0 4 2805 20 IDecryptStream::open 0 1 582 220
////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::open
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
117
inline IDecryptStream &IDecryptStream::open(istream *source, bool owns_source, basic_string< char > const &password);

1958 5 close 0 4 2805 21 IDecryptStream::close 0 1 583 348
////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::close
//       Access: Published
//  Description: Resets the EncryptStream to empty, but does not actually
//               close the source istream unless owns_source was true.
////////////////////////////////////////////////////////////////////
51
inline IDecryptStream &IDecryptStream::close(void);

1959 13 get_algorithm 0 4 2805 29 IDecryptStream::get_algorithm 0 1 584 309
////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::get_algorithm
//       Access: Published
//  Description: Returns the encryption algorithm that was read from
//               the stream.
////////////////////////////////////////////////////////////////////
77
inline basic_string< char > const &IDecryptStream::get_algorithm(void) const;

1960 14 get_key_length 0 4 2805 30 IDecryptStream::get_key_length 0 1 585 321
////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::get_key_length
//       Access: Published
//  Description: Returns the encryption key length, in bits, that was
//               read from the stream.
////////////////////////////////////////////////////////////////////
54
inline int IDecryptStream::get_key_length(void) const;

1961 19 get_iteration_count 0 4 2805 35 IDecryptStream::get_iteration_count 0 1 586 287
////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::get_iteration_count
//       Access: Published
//  Description: Returns the value that was was read from the stream.
////////////////////////////////////////////////////////////////////
59
inline int IDecryptStream::get_iteration_count(void) const;

1962 15 ~IDecryptStream 0 4 2805 31 IDecryptStream::~IDecryptStream 0 0 0
38
IDecryptStream::~IDecryptStream(void);

1963 11 IFileStream 0 4 2806 24 IFileStream::IFileStream 0 3 587 588 589 939
// Filename: pandaFileStream.I
// Created by:  drose (08Sep08)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: IFileStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: IFileStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
130
inline IFileStream::IFileStream(void);
inline IFileStream::IFileStream(char const *filename, ios_base::openmode mode = (ios::in));

1964 12 ~IFileStream 0 4 2806 25 IFileStream::~IFileStream 0 0 222
////////////////////////////////////////////////////////////////////
//     Function: IFileStream::Destructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
39
inline IFileStream::~IFileStream(void);

1965 4 open 0 4 2806 17 IFileStream::open 0 2 590 591 217
////////////////////////////////////////////////////////////////////
//     Function: IFileStream::open
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
89
inline void IFileStream::open(char const *filename, ios_base::openmode mode = (ios::in));

1966 5 close 0 4 2806 18 IFileStream::close 0 1 592 218
////////////////////////////////////////////////////////////////////
//     Function: IFileStream::close
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
37
inline void IFileStream::close(void);

1967 7 acquire 0 4 2808 26 StreamWrapperBase::acquire 0 1 596 952
////////////////////////////////////////////////////////////////////
//     Function: StreamWrapperBase::acquire
//       Access: Published
//  Description: Acquires the internal lock.  
//
//               User code should call this to take temporary
//               possession of the stream and perform direct I/O
//               operations on it, for instance to make several
//               sequential atomic reads.  You may not call any of the
//               StreamWrapper methods while the lock is held, other
//               than release().
//
//               Use with extreme caution!  This is a very low-level,
//               non-recursive lock.  You must call acquire() only
//               once, and you must later call release() exactly once.
//               Failing to do so may result in a hard deadlock with
//               no available debugging features.
////////////////////////////////////////////////////////////////////
45
inline void StreamWrapperBase::acquire(void);

1968 7 release 0 4 2808 26 StreamWrapperBase::release 0 1 597 381
////////////////////////////////////////////////////////////////////
//     Function: StreamWrapperBase::release
//       Access: Published
//  Description: Releases the internal lock.  Must be called exactly
//               once following a call to acquire().  See the cautions
//               with acquire().
////////////////////////////////////////////////////////////////////
45
inline void StreamWrapperBase::release(void);

1969 18 ~StreamWrapperBase 0 4 2808 37 StreamWrapperBase::~StreamWrapperBase 0 0 0
44
StreamWrapperBase::~StreamWrapperBase(void);

1970 27 upcast_to_StreamWrapperBase 0 12 2807 43 IStreamWrapper::upcast_to_StreamWrapperBase 0 1 595 47
upcast from IStreamWrapper to StreamWrapperBase
69
StreamWrapperBase *IStreamWrapper::upcast_to_StreamWrapperBase(void);

1971 14 IStreamWrapper 0 4 2807 30 IStreamWrapper::IStreamWrapper 0 1 593 453
////////////////////////////////////////////////////////////////////
//     Function: IStreamWrapper::Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: IStreamWrapper::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
55
inline IStreamWrapper::IStreamWrapper(istream &stream);

1972 15 ~IStreamWrapper 0 4 2807 31 IStreamWrapper::~IStreamWrapper 0 0 0
38
IStreamWrapper::~IStreamWrapper(void);

1973 11 get_istream 0 4 2807 27 IStreamWrapper::get_istream 0 1 594 271
////////////////////////////////////////////////////////////////////
//     Function: IStreamWrapper::get_istream
//       Access: Published
//  Description: Returns the istream this object is wrapping.
////////////////////////////////////////////////////////////////////
56
inline istream *IStreamWrapper::get_istream(void) const;

1974 15 get_total_alloc 0 4 2809 32 NeverFreeMemory::get_total_alloc 0 1 598 353
////////////////////////////////////////////////////////////////////
//     Function: NeverFreeMemory::get_total_alloc
//       Access: Published, Static
//  Description: Returns the total number of bytes consumed by all the
//               pages allocated internally by this object.
////////////////////////////////////////////////////////////////////
66
static inline unsigned int NeverFreeMemory::get_total_alloc(void);

1975 14 get_total_used 0 4 2809 31 NeverFreeMemory::get_total_used 0 1 599 356
////////////////////////////////////////////////////////////////////
//     Function: NeverFreeMemory::get_total_used
//       Access: Published, Static
//  Description: Returns the total number of bytes requested by the
//               application in calls to NeverFreeMemory::alloc().
////////////////////////////////////////////////////////////////////
65
static inline unsigned int NeverFreeMemory::get_total_used(void);

1976 16 get_total_unused 0 4 2809 33 NeverFreeMemory::get_total_unused 0 1 600 454
////////////////////////////////////////////////////////////////////
//     Function: NeverFreeMemory::get_total_unused
//       Access: Published, Static
//  Description: Returns the difference between get_total_alloc() and
//               get_total_used().  This represents bytes in allocated
//               pages that have not (yet) been used by the
//               application.
////////////////////////////////////////////////////////////////////
67
static inline unsigned int NeverFreeMemory::get_total_unused(void);

1977 16 ~NeverFreeMemory 0 4 2809 33 NeverFreeMemory::~NeverFreeMemory 0 0 0
40
NeverFreeMemory::~NeverFreeMemory(void);

1978 6 Notify 0 4 2810 14 Notify::Notify 0 1 601 0
21
Notify::Notify(void);

1979 7 ~Notify 0 4 2810 15 Notify::~Notify 0 0 0
22
Notify::~Notify(void);

1980 15 set_ostream_ptr 0 4 2810 23 Notify::set_ostream_ptr 0 1 602 0
70
void Notify::set_ostream_ptr(ostream *ostream_ptr, bool delete_later);

1981 15 get_ostream_ptr 0 4 2810 23 Notify::get_ostream_ptr 0 1 603 0
45
ostream *Notify::get_ostream_ptr(void) const;

1982 18 set_assert_handler 0 4 2810 26 Notify::set_assert_handler 0 0 0
115
void Notify::set_assert_handler(bool (*assert_handler)(char const *expression, int line, char const *source_file));

1983 20 clear_assert_handler 0 4 2810 28 Notify::clear_assert_handler 0 1 604 0
40
void Notify::clear_assert_handler(void);

1984 18 has_assert_handler 0 4 2810 26 Notify::has_assert_handler 0 1 605 0
44
bool Notify::has_assert_handler(void) const;

1985 18 get_assert_handler 0 4 2810 26 Notify::get_assert_handler 0 1 606 0
106
bool (*Notify::get_assert_handler(void))(char const *expression, int line, char const *source_file) const;

1986 17 has_assert_failed 0 4 2810 25 Notify::has_assert_failed 0 1 607 0
43
bool Notify::has_assert_failed(void) const;

1987 24 get_assert_error_message 0 4 2810 32 Notify::get_assert_error_message 0 1 608 0
73
basic_string< char > const &Notify::get_assert_error_message(void) const;

1988 19 clear_assert_failed 0 4 2810 27 Notify::clear_assert_failed 0 1 609 0
39
void Notify::clear_assert_failed(void);

1989 16 get_top_category 0 4 2810 24 Notify::get_top_category 0 1 610 0
47
NotifyCategory *Notify::get_top_category(void);

1990 12 get_category 0 4 2810 20 Notify::get_category 0 3 611 612 613 0
305
NotifyCategory *Notify::get_category(basic_string< char > const &basename, NotifyCategory *parent_category);
NotifyCategory *Notify::get_category(basic_string< char > const &basename, basic_string< char > const &parent_fullname);
NotifyCategory *Notify::get_category(basic_string< char > const &fullname);

1991 3 out 0 4 2810 11 Notify::out 0 1 614 0
34
static ostream &Notify::out(void);

1992 4 null 0 4 2810 12 Notify::null 0 1 615 0
35
static ostream &Notify::null(void);

1993 12 write_string 0 4 2810 20 Notify::write_string 0 1 616 0
66
static void Notify::write_string(basic_string< char > const &str);

1994 3 ptr 0 4 2810 11 Notify::ptr 0 1 617 0
33
static Notify *Notify::ptr(void);

1995 20 upcast_to_MemoryBase 0 12 2811 36 NotifyCategory::upcast_to_MemoryBase 0 1 646 40
upcast from NotifyCategory to MemoryBase
55
MemoryBase *NotifyCategory::upcast_to_MemoryBase(void);

1996 26 downcast_to_NotifyCategory 0 12 2780 38 MemoryBase::downcast_to_NotifyCategory 0 1 647 42
downcast from MemoryBase to NotifyCategory
61
NotifyCategory *MemoryBase::downcast_to_NotifyCategory(void);

1997 21 upcast_to_ConfigFlags 0 12 2811 37 NotifyCategory::upcast_to_ConfigFlags 0 1 648 41
upcast from NotifyCategory to ConfigFlags
57
ConfigFlags *NotifyCategory::upcast_to_ConfigFlags(void);

1998 26 downcast_to_NotifyCategory 0 12 2759 39 ConfigFlags::downcast_to_NotifyCategory 0 1 649 43
downcast from ConfigFlags to NotifyCategory
62
NotifyCategory *ConfigFlags::downcast_to_NotifyCategory(void);

1999 12 get_fullname 0 4 2811 28 NotifyCategory::get_fullname 0 1 618 714
// Filename: notifyCategory.I
// Created by:  drose (29Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::get_fullname
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
69
inline basic_string< char > NotifyCategory::get_fullname(void) const;

2000 12 get_basename 0 4 2811 28 NotifyCategory::get_basename 0 1 619 224
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::get_basename
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
69
inline basic_string< char > NotifyCategory::get_basename(void) const;

2001 12 get_severity 0 4 2811 28 NotifyCategory::get_severity 0 1 620 224
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::get_severity
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
63
inline NotifySeverity NotifyCategory::get_severity(void) const;

2002 12 set_severity 0 4 2811 28 NotifyCategory::set_severity 0 1 621 395
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::set_severity
//       Access: Public
//  Description: Sets the severity level of messages that will be
//               reported from this Category.  This allows any message
//               of this severity level or higher.
////////////////////////////////////////////////////////////////////
66
inline void NotifyCategory::set_severity(NotifySeverity severity);

2003 5 is_on 0 4 2811 21 NotifyCategory::is_on 0 1 622 331
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_on
//       Access: Public
//  Description: Returns true if messages of the indicated severity
//               level ought to be reported for this Category.
////////////////////////////////////////////////////////////////////
65
inline bool NotifyCategory::is_on(NotifySeverity severity) const;

2004 7 is_spam 0 4 2811 23 NotifyCategory::is_spam 0 1 623 654
// When NOTIFY_DEBUG is not defined, the categories will never be
// set to "spam" or "debug" severities, and these methods are
// redefined to be static to make it more obvious to the compiler.
// However, we still want to present a consistent interface to our
// scripting language, so during the interrogate pass (that is, when
// CPPPARSER is defined), we still pretend they're nonstatic.

////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_spam
//       Access: Public
//  Description: A shorthand way to write is_on(NS_spam).
////////////////////////////////////////////////////////////////////
48
inline bool NotifyCategory::is_spam(void) const;

2005 8 is_debug 0 4 2811 24 NotifyCategory::is_debug 0 1 624 262
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_debug
//       Access: Public
//  Description: A shorthand way to write is_on(NS_debug).
////////////////////////////////////////////////////////////////////
49
inline bool NotifyCategory::is_debug(void) const;

2006 7 is_info 0 4 2811 23 NotifyCategory::is_info 0 1 625 260
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_info
//       Access: Public
//  Description: A shorthand way to write is_on(NS_info).
////////////////////////////////////////////////////////////////////
48
inline bool NotifyCategory::is_info(void) const;

2007 10 is_warning 0 4 2811 26 NotifyCategory::is_warning 0 1 626 266
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_warning
//       Access: Public
//  Description: A shorthand way to write is_on(NS_warning).
////////////////////////////////////////////////////////////////////
51
inline bool NotifyCategory::is_warning(void) const;

2008 8 is_error 0 4 2811 24 NotifyCategory::is_error 0 1 627 262
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_error
//       Access: Public
//  Description: A shorthand way to write is_on(NS_error).
////////////////////////////////////////////////////////////////////
49
inline bool NotifyCategory::is_error(void) const;

2009 8 is_fatal 0 4 2811 24 NotifyCategory::is_fatal 0 1 628 262
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_fatal
//       Access: Public
//  Description: A shorthand way to write is_on(NS_fatal).
////////////////////////////////////////////////////////////////////
49
inline bool NotifyCategory::is_fatal(void) const;

2010 3 out 0 4 2811 19 NotifyCategory::out 0 2 629 630 0
79
ostream &NotifyCategory::out(NotifySeverity severity, bool prefix = (1)) const;

2011 4 spam 0 4 2811 20 NotifyCategory::spam 0 2 631 632 255
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::spam
//       Access: Public
//  Description: A shorthand way to write out(NS_spam).
////////////////////////////////////////////////////////////////////
62
inline ostream &NotifyCategory::spam(bool prefix = (1)) const;

2012 5 debug 0 4 2811 21 NotifyCategory::debug 0 2 633 634 257
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::debug
//       Access: Public
//  Description: A shorthand way to write out(NS_debug).
////////////////////////////////////////////////////////////////////
63
inline ostream &NotifyCategory::debug(bool prefix = (1)) const;

2013 4 info 0 4 2811 20 NotifyCategory::info 0 2 635 636 255
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::info
//       Access: Public
//  Description: A shorthand way to write out(NS_info).
////////////////////////////////////////////////////////////////////
62
inline ostream &NotifyCategory::info(bool prefix = (1)) const;

2014 7 warning 0 4 2811 23 NotifyCategory::warning 0 2 637 638 261
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::warning
//       Access: Public
//  Description: A shorthand way to write out(NS_warning).
////////////////////////////////////////////////////////////////////
65
inline ostream &NotifyCategory::warning(bool prefix = (1)) const;

2015 5 error 0 4 2811 21 NotifyCategory::error 0 2 639 640 257
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::error
//       Access: Public
//  Description: A shorthand way to write out(NS_error).
////////////////////////////////////////////////////////////////////
63
inline ostream &NotifyCategory::error(bool prefix = (1)) const;

2016 5 fatal 0 4 2811 21 NotifyCategory::fatal 0 2 641 642 257
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::fatal
//       Access: Public
//  Description: A shorthand way to write out(NS_fatal).
////////////////////////////////////////////////////////////////////
63
inline ostream &NotifyCategory::fatal(bool prefix = (1)) const;

2017 16 get_num_children 0 4 2811 32 NotifyCategory::get_num_children 0 1 643 0
49
int NotifyCategory::get_num_children(void) const;

2018 9 get_child 0 4 2811 25 NotifyCategory::get_child 0 1 644 0
55
NotifyCategory *NotifyCategory::get_child(int i) const;

2019 16 set_server_delta 0 4 2811 32 NotifyCategory::set_server_delta 0 1 645 0
61
static void NotifyCategory::set_server_delta(long int delta);

2020 15 ~NotifyCategory 0 4 2811 31 NotifyCategory::~NotifyCategory 0 0 0
38
NotifyCategory::~NotifyCategory(void);

2021 14 OEncryptStream 0 4 2813 30 OEncryptStream::OEncryptStream 0 2 650 651 454
////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
152
inline OEncryptStream::OEncryptStream(void);
inline OEncryptStream::OEncryptStream(ostream *dest, bool owns_dest, basic_string< char > const &password);

2022 4 open 0 4 2813 20 OEncryptStream::open 0 1 652 220
////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::open
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
113
inline OEncryptStream &OEncryptStream::open(ostream *dest, bool owns_dest, basic_string< char > const &password);

2023 5 close 0 4 2813 21 OEncryptStream::close 0 1 653 344
////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::close
//       Access: Published
//  Description: Resets the EncryptStream to empty, but does not actually
//               close the dest ostream unless owns_dest was true.
////////////////////////////////////////////////////////////////////
51
inline OEncryptStream &OEncryptStream::close(void);

2024 13 set_algorithm 0 4 2813 29 OEncryptStream::set_algorithm 0 1 654 722
////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::set_algorithm
//       Access: Published
//  Description: Specifies the encryption algorithm that should be
//               used for future calls to open().  The default
//               is whatever is specified by the encryption-algorithm
//               config variable.  The complete set of available
//               algorithms is defined by the current version of
//               OpenSSL.
//
//               If an invalid algorithm is specified, there is no
//               immediate error return code, but open() will
//               fail.
////////////////////////////////////////////////////////////////////
81
inline void OEncryptStream::set_algorithm(basic_string< char > const &algorithm);

2025 14 set_key_length 0 4 2813 30 OEncryptStream::set_key_length 0 1 655 658
////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::set_key_length
//       Access: Published
//  Description: Specifies the length of the key, in bits, that should
//               be used to encrypt the stream in future calls to
//               open().  The default is whatever is specified
//               by the encryption-key-length config variable.  
//
//               If an invalid key_length for the chosen algorithm is
//               specified, there is no immediate error return code,
//               but open() will fail.
////////////////////////////////////////////////////////////////////
59
inline void OEncryptStream::set_key_length(int key_length);

2026 19 set_iteration_count 0 4 2813 35 OEncryptStream::set_iteration_count 0 1 656 851
////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::set_iteration_count
//       Access: Published
//  Description: Specifies the number of times to repeatedly hash the
//               key before writing it to the stream in future calls
//               to open().  Its purpose is to make it
//               computationally more expensive for an attacker to
//               search the key space exhaustively.  This should be a
//               multiple of 1,000 and should not exceed about 65
//               million; the value 0 indicates just one application
//               of the hashing algorithm.
//
//               The default is whatever is specified by the
//               encryption-iteration-count config variable.
////////////////////////////////////////////////////////////////////
69
inline void OEncryptStream::set_iteration_count(int iteration_count);

2027 15 ~OEncryptStream 0 4 2813 31 OEncryptStream::~OEncryptStream 0 0 0
38
OEncryptStream::~OEncryptStream(void);

2028 11 OFileStream 0 4 2814 24 OFileStream::OFileStream 0 3 657 658 659 448
////////////////////////////////////////////////////////////////////
//     Function: OFileStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: OFileStream::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
131
inline OFileStream::OFileStream(void);
inline OFileStream::OFileStream(char const *filename, ios_base::openmode mode = (ios::out));

2029 12 ~OFileStream 0 4 2814 25 OFileStream::~OFileStream 0 0 222
////////////////////////////////////////////////////////////////////
//     Function: OFileStream::Destructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
39
inline OFileStream::~OFileStream(void);

2030 4 open 0 4 2814 17 OFileStream::open 0 2 660 661 217
////////////////////////////////////////////////////////////////////
//     Function: OFileStream::open
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
90
inline void OFileStream::open(char const *filename, ios_base::openmode mode = (ios::out));

2031 5 close 0 4 2814 18 OFileStream::close 0 1 662 218
////////////////////////////////////////////////////////////////////
//     Function: OFileStream::close
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
37
inline void OFileStream::close(void);

2032 27 upcast_to_StreamWrapperBase 0 12 2815 43 OStreamWrapper::upcast_to_StreamWrapperBase 0 1 665 47
upcast from OStreamWrapper to StreamWrapperBase
69
StreamWrapperBase *OStreamWrapper::upcast_to_StreamWrapperBase(void);

2033 14 OStreamWrapper 0 4 2815 30 OStreamWrapper::OStreamWrapper 0 1 663 453
////////////////////////////////////////////////////////////////////
//     Function: OStreamWrapper::Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: OStreamWrapper::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
55
inline OStreamWrapper::OStreamWrapper(ostream &stream);

2034 15 ~OStreamWrapper 0 4 2815 31 OStreamWrapper::~OStreamWrapper 0 0 0
38
OStreamWrapper::~OStreamWrapper(void);

2035 11 get_ostream 0 4 2815 27 OStreamWrapper::get_ostream 0 1 664 271
////////////////////////////////////////////////////////////////////
//     Function: OStreamWrapper::get_ostream
//       Access: Published
//  Description: Returns the ostream this object is wrapping.
////////////////////////////////////////////////////////////////////
56
inline ostream *OStreamWrapper::get_ostream(void) const;

2036 18 get_version_string 0 4 2816 31 PandaSystem::get_version_string 0 1 666 0
66
static basic_string< char > PandaSystem::get_version_string(void);

2037 26 get_package_version_string 0 4 2816 39 PandaSystem::get_package_version_string 0 1 667 0
74
static basic_string< char > PandaSystem::get_package_version_string(void);

2038 20 get_package_host_url 0 4 2816 33 PandaSystem::get_package_host_url 0 1 668 0
68
static basic_string< char > PandaSystem::get_package_host_url(void);

2039 30 get_p3d_coreapi_version_string 0 4 2816 43 PandaSystem::get_p3d_coreapi_version_string 0 1 669 0
78
static basic_string< char > PandaSystem::get_p3d_coreapi_version_string(void);

2040 17 get_major_version 0 4 2816 30 PandaSystem::get_major_version 0 1 670 0
48
static int PandaSystem::get_major_version(void);

2041 17 get_minor_version 0 4 2816 30 PandaSystem::get_minor_version 0 1 671 0
48
static int PandaSystem::get_minor_version(void);

2042 20 get_sequence_version 0 4 2816 33 PandaSystem::get_sequence_version 0 1 672 0
51
static int PandaSystem::get_sequence_version(void);

2043 19 is_official_version 0 4 2816 32 PandaSystem::is_official_version 0 1 673 0
51
static bool PandaSystem::is_official_version(void);

2044 15 get_distributor 0 4 2816 28 PandaSystem::get_distributor 0 1 674 0
63
static basic_string< char > PandaSystem::get_distributor(void);

2045 12 get_compiler 0 4 2816 25 PandaSystem::get_compiler 0 1 675 0
60
static basic_string< char > PandaSystem::get_compiler(void);

2046 14 get_build_date 0 4 2816 27 PandaSystem::get_build_date 0 1 676 0
62
static basic_string< char > PandaSystem::get_build_date(void);

2047 12 get_platform 0 4 2816 25 PandaSystem::get_platform 0 1 677 0
60
static basic_string< char > PandaSystem::get_platform(void);

2048 10 has_system 0 4 2816 23 PandaSystem::has_system 0 1 678 0
71
bool PandaSystem::has_system(basic_string< char > const &system) const;

2049 15 get_num_systems 0 4 2816 28 PandaSystem::get_num_systems 0 1 679 0
45
int PandaSystem::get_num_systems(void) const;

2050 10 get_system 0 4 2816 23 PandaSystem::get_system 0 1 680 0
58
basic_string< char > PandaSystem::get_system(int n) const;

2051 14 get_system_tag 0 4 2816 27 PandaSystem::get_system_tag 0 1 681 0
124
basic_string< char > PandaSystem::get_system_tag(basic_string< char > const &system, basic_string< char > const &tag) const;

2052 10 add_system 0 4 2816 23 PandaSystem::add_system 0 1 682 0
65
void PandaSystem::add_system(basic_string< char > const &system);

2053 14 set_system_tag 0 4 2816 27 PandaSystem::set_system_tag 0 1 683 0
137
void PandaSystem::set_system_tag(basic_string< char > const &system, basic_string< char > const &tag, basic_string< char > const &value);

2054 9 heap_trim 0 4 2816 22 PandaSystem::heap_trim 0 1 684 0
46
bool PandaSystem::heap_trim(unsigned int pad);

2055 6 output 0 4 2816 19 PandaSystem::output 0 1 685 0
45
void PandaSystem::output(ostream &out) const;

2056 5 write 0 4 2816 18 PandaSystem::write 0 1 686 0
44
void PandaSystem::write(ostream &out) const;

2057 14 get_global_ptr 0 4 2816 27 PandaSystem::get_global_ptr 0 1 687 0
54
static PandaSystem *PandaSystem::get_global_ptr(void);

2058 14 get_class_type 0 4 2816 27 PandaSystem::get_class_type 0 1 688 0
52
static TypeHandle PandaSystem::get_class_type(void);

2059 14 PointerToArray 0 4 2817 40 PointerToArray< double >::PointerToArray 0 4 689 690 691 692 0
285
inline ::PointerToArray< double >::PointerToArray(TypeHandle type_handle = ((_get_type_handle((double const *)(0)))));
inline ::PointerToArray< double >::PointerToArray(PointerToArray< double > const &copy);
::PointerToArray< double >::PointerToArray(PyObject *self, PyObject *source);

2060 11 empty_array 0 4 2817 37 PointerToArray< double >::empty_array 0 2 693 694 0
163
static inline PointerToArray< double > ::PointerToArray< double >::empty_array(unsigned int n, TypeHandle type_handle = ((_get_type_handle((double const *)(0)))));

2061 4 size 0 4 2817 30 PointerToArray< double >::size 0 1 695 0
65
inline unsigned int ::PointerToArray< double >::size(void) const;

2062 9 push_back 0 4 2817 35 PointerToArray< double >::push_back 0 1 696 0
67
inline void ::PointerToArray< double >::push_back(double const &x);

2063 8 pop_back 0 4 2817 34 PointerToArray< double >::pop_back 0 1 697 0
55
inline void ::PointerToArray< double >::pop_back(void);

2064 11 get_element 0 4 2817 37 PointerToArray< double >::get_element 0 1 698 0
83
inline double const &::PointerToArray< double >::get_element(unsigned int n) const;

2065 11 set_element 0 4 2817 37 PointerToArray< double >::set_element 0 1 699 0
89
inline void ::PointerToArray< double >::set_element(unsigned int n, double const &value);

2066 11 __getitem__ 0 4 2817 37 PointerToArray< double >::__getitem__ 0 1 700 0
83
inline double const &::PointerToArray< double >::__getitem__(unsigned int n) const;

2067 11 __setitem__ 0 4 2817 37 PointerToArray< double >::__setitem__ 0 1 701 0
89
inline void ::PointerToArray< double >::__setitem__(unsigned int n, double const &value);

2068 8 get_data 0 4 2817 34 PointerToArray< double >::get_data 0 1 702 0
77
inline basic_string< char > ::PointerToArray< double >::get_data(void) const;

2069 8 set_data 0 4 2817 34 PointerToArray< double >::set_data 0 1 703 0
83
inline void ::PointerToArray< double >::set_data(basic_string< char > const &data);

2070 11 get_subdata 0 4 2817 37 PointerToArray< double >::get_subdata 0 1 704 0
110
inline basic_string< char > ::PointerToArray< double >::get_subdata(unsigned int n, unsigned int count) const;

2071 11 set_subdata 0 4 2817 37 PointerToArray< double >::set_subdata 0 1 705 0
122
inline void ::PointerToArray< double >::set_subdata(unsigned int n, unsigned int count, basic_string< char > const &data);

2072 13 get_ref_count 0 4 2817 39 PointerToArray< double >::get_ref_count 0 1 706 0
65
inline int ::PointerToArray< double >::get_ref_count(void) const;

2073 18 get_node_ref_count 0 4 2817 44 PointerToArray< double >::get_node_ref_count 0 1 707 0
70
inline int ::PointerToArray< double >::get_node_ref_count(void) const;

2074 13 __getbuffer__ 0 4 2817 39 PointerToArray< double >::__getbuffer__ 0 1 708 0
90
int ::PointerToArray< double >::__getbuffer__(PyObject *self, Py_buffer *view, int flags);

2075 17 __releasebuffer__ 0 4 2817 43 PointerToArray< double >::__releasebuffer__ 0 1 709 0
90
void ::PointerToArray< double >::__releasebuffer__(PyObject *self, Py_buffer *view) const;

2076 15 ~PointerToArray 0 4 2817 41 PointerToArray< double >::~PointerToArray 0 0 0
50
::PointerToArray< double >::~PointerToArray(void);

2077 14 PointerToArray 0 4 2818 39 PointerToArray< float >::PointerToArray 0 4 710 711 712 713 0
280
inline ::PointerToArray< float >::PointerToArray(TypeHandle type_handle = ((_get_type_handle((float const *)(0)))));
inline ::PointerToArray< float >::PointerToArray(PointerToArray< float > const &copy);
::PointerToArray< float >::PointerToArray(PyObject *self, PyObject *source);

2078 11 empty_array 0 4 2818 36 PointerToArray< float >::empty_array 0 2 714 715 0
160
static inline PointerToArray< float > ::PointerToArray< float >::empty_array(unsigned int n, TypeHandle type_handle = ((_get_type_handle((float const *)(0)))));

2079 4 size 0 4 2818 29 PointerToArray< float >::size 0 1 716 0
64
inline unsigned int ::PointerToArray< float >::size(void) const;

2080 9 push_back 0 4 2818 34 PointerToArray< float >::push_back 0 1 717 0
65
inline void ::PointerToArray< float >::push_back(float const &x);

2081 8 pop_back 0 4 2818 33 PointerToArray< float >::pop_back 0 1 718 0
54
inline void ::PointerToArray< float >::pop_back(void);

2082 11 get_element 0 4 2818 36 PointerToArray< float >::get_element 0 1 719 0
81
inline float const &::PointerToArray< float >::get_element(unsigned int n) const;

2083 11 set_element 0 4 2818 36 PointerToArray< float >::set_element 0 1 720 0
87
inline void ::PointerToArray< float >::set_element(unsigned int n, float const &value);

2084 11 __getitem__ 0 4 2818 36 PointerToArray< float >::__getitem__ 0 1 721 0
81
inline float const &::PointerToArray< float >::__getitem__(unsigned int n) const;

2085 11 __setitem__ 0 4 2818 36 PointerToArray< float >::__setitem__ 0 1 722 0
87
inline void ::PointerToArray< float >::__setitem__(unsigned int n, float const &value);

2086 8 get_data 0 4 2818 33 PointerToArray< float >::get_data 0 1 723 0
76
inline basic_string< char > ::PointerToArray< float >::get_data(void) const;

2087 8 set_data 0 4 2818 33 PointerToArray< float >::set_data 0 1 724 0
82
inline void ::PointerToArray< float >::set_data(basic_string< char > const &data);

2088 11 get_subdata 0 4 2818 36 PointerToArray< float >::get_subdata 0 1 725 0
109
inline basic_string< char > ::PointerToArray< float >::get_subdata(unsigned int n, unsigned int count) const;

2089 11 set_subdata 0 4 2818 36 PointerToArray< float >::set_subdata 0 1 726 0
121
inline void ::PointerToArray< float >::set_subdata(unsigned int n, unsigned int count, basic_string< char > const &data);

2090 13 get_ref_count 0 4 2818 38 PointerToArray< float >::get_ref_count 0 1 727 0
64
inline int ::PointerToArray< float >::get_ref_count(void) const;

2091 18 get_node_ref_count 0 4 2818 43 PointerToArray< float >::get_node_ref_count 0 1 728 0
69
inline int ::PointerToArray< float >::get_node_ref_count(void) const;

2092 13 __getbuffer__ 0 4 2818 38 PointerToArray< float >::__getbuffer__ 0 1 729 0
89
int ::PointerToArray< float >::__getbuffer__(PyObject *self, Py_buffer *view, int flags);

2093 17 __releasebuffer__ 0 4 2818 42 PointerToArray< float >::__releasebuffer__ 0 1 730 0
89
void ::PointerToArray< float >::__releasebuffer__(PyObject *self, Py_buffer *view) const;

2094 15 ~PointerToArray 0 4 2818 40 PointerToArray< float >::~PointerToArray 0 0 0
49
::PointerToArray< float >::~PointerToArray(void);

2095 14 PointerToArray 0 4 2819 37 PointerToArray< int >::PointerToArray 0 4 731 732 733 734 0
270
inline ::PointerToArray< int >::PointerToArray(TypeHandle type_handle = ((_get_type_handle((int const *)(0)))));
inline ::PointerToArray< int >::PointerToArray(PointerToArray< int > const &copy);
::PointerToArray< int >::PointerToArray(PyObject *self, PyObject *source);

2096 11 empty_array 0 4 2819 34 PointerToArray< int >::empty_array 0 2 735 736 0
154
static inline PointerToArray< int > ::PointerToArray< int >::empty_array(unsigned int n, TypeHandle type_handle = ((_get_type_handle((int const *)(0)))));

2097 4 size 0 4 2819 27 PointerToArray< int >::size 0 1 737 0
62
inline unsigned int ::PointerToArray< int >::size(void) const;

2098 9 push_back 0 4 2819 32 PointerToArray< int >::push_back 0 1 738 0
61
inline void ::PointerToArray< int >::push_back(int const &x);

2099 8 pop_back 0 4 2819 31 PointerToArray< int >::pop_back 0 1 739 0
52
inline void ::PointerToArray< int >::pop_back(void);

2100 11 get_element 0 4 2819 34 PointerToArray< int >::get_element 0 1 740 0
77
inline int const &::PointerToArray< int >::get_element(unsigned int n) const;

2101 11 set_element 0 4 2819 34 PointerToArray< int >::set_element 0 1 741 0
83
inline void ::PointerToArray< int >::set_element(unsigned int n, int const &value);

2102 11 __getitem__ 0 4 2819 34 PointerToArray< int >::__getitem__ 0 1 742 0
77
inline int const &::PointerToArray< int >::__getitem__(unsigned int n) const;

2103 11 __setitem__ 0 4 2819 34 PointerToArray< int >::__setitem__ 0 1 743 0
83
inline void ::PointerToArray< int >::__setitem__(unsigned int n, int const &value);

2104 8 get_data 0 4 2819 31 PointerToArray< int >::get_data 0 1 744 0
74
inline basic_string< char > ::PointerToArray< int >::get_data(void) const;

2105 8 set_data 0 4 2819 31 PointerToArray< int >::set_data 0 1 745 0
80
inline void ::PointerToArray< int >::set_data(basic_string< char > const &data);

2106 11 get_subdata 0 4 2819 34 PointerToArray< int >::get_subdata 0 1 746 0
107
inline basic_string< char > ::PointerToArray< int >::get_subdata(unsigned int n, unsigned int count) const;

2107 11 set_subdata 0 4 2819 34 PointerToArray< int >::set_subdata 0 1 747 0
119
inline void ::PointerToArray< int >::set_subdata(unsigned int n, unsigned int count, basic_string< char > const &data);

2108 13 get_ref_count 0 4 2819 36 PointerToArray< int >::get_ref_count 0 1 748 0
62
inline int ::PointerToArray< int >::get_ref_count(void) const;

2109 18 get_node_ref_count 0 4 2819 41 PointerToArray< int >::get_node_ref_count 0 1 749 0
67
inline int ::PointerToArray< int >::get_node_ref_count(void) const;

2110 13 __getbuffer__ 0 4 2819 36 PointerToArray< int >::__getbuffer__ 0 1 750 0
87
int ::PointerToArray< int >::__getbuffer__(PyObject *self, Py_buffer *view, int flags);

2111 17 __releasebuffer__ 0 4 2819 40 PointerToArray< int >::__releasebuffer__ 0 1 751 0
87
void ::PointerToArray< int >::__releasebuffer__(PyObject *self, Py_buffer *view) const;

2112 15 ~PointerToArray 0 4 2819 38 PointerToArray< int >::~PointerToArray 0 0 0
47
::PointerToArray< int >::~PointerToArray(void);

2113 14 PointerToArray 0 4 2820 47 PointerToArray< unsigned char >::PointerToArray 0 4 752 753 754 755 0
320
inline ::PointerToArray< unsigned char >::PointerToArray(TypeHandle type_handle = ((_get_type_handle((unsigned char const *)(0)))));
inline ::PointerToArray< unsigned char >::PointerToArray(PointerToArray< unsigned char > const &copy);
::PointerToArray< unsigned char >::PointerToArray(PyObject *self, PyObject *source);

2114 11 empty_array 0 4 2820 44 PointerToArray< unsigned char >::empty_array 0 2 756 757 0
184
static inline PointerToArray< unsigned char > ::PointerToArray< unsigned char >::empty_array(unsigned int n, TypeHandle type_handle = ((_get_type_handle((unsigned char const *)(0)))));

2115 4 size 0 4 2820 37 PointerToArray< unsigned char >::size 0 1 758 0
72
inline unsigned int ::PointerToArray< unsigned char >::size(void) const;

2116 9 push_back 0 4 2820 42 PointerToArray< unsigned char >::push_back 0 1 759 0
81
inline void ::PointerToArray< unsigned char >::push_back(unsigned char const &x);

2117 8 pop_back 0 4 2820 41 PointerToArray< unsigned char >::pop_back 0 1 760 0
62
inline void ::PointerToArray< unsigned char >::pop_back(void);

2118 11 get_element 0 4 2820 44 PointerToArray< unsigned char >::get_element 0 1 761 0
97
inline unsigned char const &::PointerToArray< unsigned char >::get_element(unsigned int n) const;

2119 11 set_element 0 4 2820 44 PointerToArray< unsigned char >::set_element 0 1 762 0
103
inline void ::PointerToArray< unsigned char >::set_element(unsigned int n, unsigned char const &value);

2120 11 __getitem__ 0 4 2820 44 PointerToArray< unsigned char >::__getitem__ 0 1 763 0
97
inline unsigned char const &::PointerToArray< unsigned char >::__getitem__(unsigned int n) const;

2121 11 __setitem__ 0 4 2820 44 PointerToArray< unsigned char >::__setitem__ 0 1 764 0
103
inline void ::PointerToArray< unsigned char >::__setitem__(unsigned int n, unsigned char const &value);

2122 8 get_data 0 4 2820 41 PointerToArray< unsigned char >::get_data 0 1 765 0
84
inline basic_string< char > ::PointerToArray< unsigned char >::get_data(void) const;

2123 8 set_data 0 4 2820 41 PointerToArray< unsigned char >::set_data 0 1 766 0
90
inline void ::PointerToArray< unsigned char >::set_data(basic_string< char > const &data);

2124 11 get_subdata 0 4 2820 44 PointerToArray< unsigned char >::get_subdata 0 1 767 0
117
inline basic_string< char > ::PointerToArray< unsigned char >::get_subdata(unsigned int n, unsigned int count) const;

2125 11 set_subdata 0 4 2820 44 PointerToArray< unsigned char >::set_subdata 0 1 768 0
129
inline void ::PointerToArray< unsigned char >::set_subdata(unsigned int n, unsigned int count, basic_string< char > const &data);

2126 13 get_ref_count 0 4 2820 46 PointerToArray< unsigned char >::get_ref_count 0 1 769 0
72
inline int ::PointerToArray< unsigned char >::get_ref_count(void) const;

2127 18 get_node_ref_count 0 4 2820 51 PointerToArray< unsigned char >::get_node_ref_count 0 1 770 0
77
inline int ::PointerToArray< unsigned char >::get_node_ref_count(void) const;

2128 13 __getbuffer__ 0 4 2820 46 PointerToArray< unsigned char >::__getbuffer__ 0 1 771 0
97
int ::PointerToArray< unsigned char >::__getbuffer__(PyObject *self, Py_buffer *view, int flags);

2129 17 __releasebuffer__ 0 4 2820 50 PointerToArray< unsigned char >::__releasebuffer__ 0 1 772 0
97
void ::PointerToArray< unsigned char >::__releasebuffer__(PyObject *self, Py_buffer *view) const;

2130 15 ~PointerToArray 0 4 2820 48 PointerToArray< unsigned char >::~PointerToArray 0 0 0
57
::PointerToArray< unsigned char >::~PointerToArray(void);

2131 12 StreamReader 0 4 2821 26 StreamReader::StreamReader 0 2 773 774 1352
// Filename: streamReader.I
// Created by:  drose (04Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: StreamReader::Constructor
//       Access: Published
//  Description: If owns_stream is true, the stream pointer will be
//               deleted when the StreamReader destructs.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: StreamReader::Copy Constructor
//       Access: Published
//  Description: The copy constructor does not copy ownership of the
//               stream.
////////////////////////////////////////////////////////////////////
126
inline StreamReader::StreamReader(istream *in, bool owns_stream);
inline StreamReader::StreamReader(StreamReader const &copy);

2132 10 operator = 0 4 2821 24 StreamReader::operator = 0 1 775 314
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::Copy Assignment Operator
//       Access: Published
//  Description: The copy constructor does not copy ownership of the
//               stream.
////////////////////////////////////////////////////////////////////
63
inline void StreamReader::operator =(StreamReader const &copy);

2133 13 ~StreamReader 0 4 2821 27 StreamReader::~StreamReader 0 0 223
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::Destructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
41
inline StreamReader::~StreamReader(void);

2134 11 get_istream 0 4 2821 25 StreamReader::get_istream 0 1 776 251
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_istream
//       Access: Published
//  Description: Returns the stream in use.
////////////////////////////////////////////////////////////////////
54
inline istream *StreamReader::get_istream(void) const;

2135 8 get_bool 0 4 2821 22 StreamReader::get_bool 0 1 777 247
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_bool
//       Access: Published
//  Description: Extracts a boolean value.
////////////////////////////////////////////////////////////////////
41
inline bool StreamReader::get_bool(void);

2136 8 get_int8 0 4 2821 22 StreamReader::get_int8 0 1 778 254
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_int8
//       Access: Published
//  Description: Extracts a signed 8-bit integer.
////////////////////////////////////////////////////////////////////
48
inline signed char StreamReader::get_int8(void);

2137 9 get_uint8 0 4 2821 23 StreamReader::get_uint8 0 1 779 258
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_uint8
//       Access: Published
//  Description: Extracts an unsigned 8-bit integer.
////////////////////////////////////////////////////////////////////
51
inline unsigned char StreamReader::get_uint8(void);

2138 9 get_int16 0 4 2821 23 StreamReader::get_int16 0 1 780 256
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_int16
//       Access: Published
//  Description: Extracts a signed 16-bit integer.
////////////////////////////////////////////////////////////////////
47
inline short int StreamReader::get_int16(void);

2139 9 get_int32 0 4 2821 23 StreamReader::get_int32 0 1 781 256
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_int32
//       Access: Published
//  Description: Extracts a signed 32-bit integer.
////////////////////////////////////////////////////////////////////
41
inline int StreamReader::get_int32(void);

2140 9 get_int64 0 4 2821 23 StreamReader::get_int64 0 1 782 256
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_int64
//       Access: Published
//  Description: Extracts a signed 64-bit integer.
////////////////////////////////////////////////////////////////////
45
inline __int64 StreamReader::get_int64(void);

2141 10 get_uint16 0 4 2821 24 StreamReader::get_uint16 0 1 783 260
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_uint16
//       Access: Published
//  Description: Extracts an unsigned 16-bit integer.
////////////////////////////////////////////////////////////////////
57
inline unsigned short int StreamReader::get_uint16(void);

2142 10 get_uint32 0 4 2821 24 StreamReader::get_uint32 0 1 784 260
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_uint32
//       Access: Published
//  Description: Extracts an unsigned 32-bit integer.
////////////////////////////////////////////////////////////////////
51
inline unsigned int StreamReader::get_uint32(void);

2143 10 get_uint64 0 4 2821 24 StreamReader::get_uint64 0 1 785 260
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_uint64
//       Access: Published
//  Description: Extracts an unsigned 64-bit integer.
////////////////////////////////////////////////////////////////////
55
inline unsigned __int64 StreamReader::get_uint64(void);

2144 11 get_float32 0 4 2821 25 StreamReader::get_float32 0 1 786 445
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_float32
//       Access: Published
//  Description: Extracts a 32-bit single-precision floating-point
//               number.  Since this kind of float is not necessarily
//               portable across different architectures, special care
//               is required.
////////////////////////////////////////////////////////////////////
45
inline float StreamReader::get_float32(void);

2145 11 get_float64 0 4 2821 25 StreamReader::get_float64 0 1 787 265
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_float64
//       Access: Published
//  Description: Extracts a 64-bit floating-point number.
////////////////////////////////////////////////////////////////////
46
inline double StreamReader::get_float64(void);

2146 12 get_be_int16 0 4 2821 26 StreamReader::get_be_int16 0 1 788 270
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_int16
//       Access: Published
//  Description: Extracts a signed big-endian 16-bit integer.
////////////////////////////////////////////////////////////////////
50
inline short int StreamReader::get_be_int16(void);

2147 12 get_be_int32 0 4 2821 26 StreamReader::get_be_int32 0 1 789 270
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_int32
//       Access: Published
//  Description: Extracts a signed big-endian 32-bit integer.
////////////////////////////////////////////////////////////////////
44
inline int StreamReader::get_be_int32(void);

2148 12 get_be_int64 0 4 2821 26 StreamReader::get_be_int64 0 1 790 270
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_int64
//       Access: Published
//  Description: Extracts a signed big-endian 64-bit integer.
////////////////////////////////////////////////////////////////////
48
inline __int64 StreamReader::get_be_int64(void);

2149 13 get_be_uint16 0 4 2821 27 StreamReader::get_be_uint16 0 1 791 274
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_uint16
//       Access: Published
//  Description: Extracts an unsigned big-endian 16-bit integer.
////////////////////////////////////////////////////////////////////
60
inline unsigned short int StreamReader::get_be_uint16(void);

2150 13 get_be_uint32 0 4 2821 27 StreamReader::get_be_uint32 0 1 792 274
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_uint32
//       Access: Published
//  Description: Extracts an unsigned big-endian 32-bit integer.
////////////////////////////////////////////////////////////////////
54
inline unsigned int StreamReader::get_be_uint32(void);

2151 13 get_be_uint64 0 4 2821 27 StreamReader::get_be_uint64 0 1 793 274
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_uint64
//       Access: Published
//  Description: Extracts an unsigned big-endian 64-bit integer.
////////////////////////////////////////////////////////////////////
58
inline unsigned __int64 StreamReader::get_be_uint64(void);

2152 14 get_be_float32 0 4 2821 28 StreamReader::get_be_float32 0 1 794 459
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_float32
//       Access: Published
//  Description: Extracts a 32-bit single-precision big-endian
//               floating-point number.  Since this kind of float is
//               not necessarily portable across different
//               architectures, special care is required.
////////////////////////////////////////////////////////////////////
48
inline float StreamReader::get_be_float32(void);

2153 14 get_be_float64 0 4 2821 28 StreamReader::get_be_float64 0 1 795 279
////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_float64
//       Access: Published
//  Description: Extracts a 64-bit big-endian floating-point number.
////////////////////////////////////////////////////////////////////
49
inline double StreamReader::get_be_float64(void);

2154 10 get_string 0 4 2821 24 StreamReader::get_string 0 1 796 0
52
basic_string< char > StreamReader::get_string(void);

2155 12 get_string32 0 4 2821 26 StreamReader::get_string32 0 1 797 0
54
basic_string< char > StreamReader::get_string32(void);

2156 12 get_z_string 0 4 2821 26 StreamReader::get_z_string 0 1 798 0
54
basic_string< char > StreamReader::get_z_string(void);

2157 16 get_fixed_string 0 4 2821 30 StreamReader::get_fixed_string 0 1 799 0
71
basic_string< char > StreamReader::get_fixed_string(unsigned int size);

2158 10 skip_bytes 0 4 2821 24 StreamReader::skip_bytes 0 1 800 0
49
void StreamReader::skip_bytes(unsigned int size);

2159 13 extract_bytes 0 4 2821 27 StreamReader::extract_bytes 0 1 801 0
150
basic_string< char > StreamReader::extract_bytes(unsigned int size);
unsigned int StreamReader::extract_bytes(unsigned char *into, unsigned int size);

2160 8 readline 0 4 2821 22 StreamReader::readline 0 1 802 0
50
basic_string< char > StreamReader::readline(void);

2161 9 readlines 0 4 2821 23 StreamReader::readlines 0 1 803 0
40
PyObject *StreamReader::readlines(void);

2162 24 upcast_to_IStreamWrapper 0 12 2822 39 StreamWrapper::upcast_to_IStreamWrapper 0 1 806 43
upcast from StreamWrapper to IStreamWrapper
62
IStreamWrapper *StreamWrapper::upcast_to_IStreamWrapper(void);

2163 25 downcast_to_StreamWrapper 0 12 2807 41 IStreamWrapper::downcast_to_StreamWrapper 0 1 807 45
downcast from IStreamWrapper to StreamWrapper
63
StreamWrapper *IStreamWrapper::downcast_to_StreamWrapper(void);

2164 24 upcast_to_OStreamWrapper 0 12 2822 39 StreamWrapper::upcast_to_OStreamWrapper 0 1 808 43
upcast from StreamWrapper to OStreamWrapper
62
OStreamWrapper *StreamWrapper::upcast_to_OStreamWrapper(void);

2165 25 downcast_to_StreamWrapper 0 12 2815 41 OStreamWrapper::downcast_to_StreamWrapper 0 1 809 45
downcast from OStreamWrapper to StreamWrapper
63
StreamWrapper *OStreamWrapper::downcast_to_StreamWrapper(void);

2166 13 StreamWrapper 0 4 2822 28 StreamWrapper::StreamWrapper 0 1 804 451
////////////////////////////////////////////////////////////////////
//     Function: StreamWrapper::Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: StreamWrapper::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
54
inline StreamWrapper::StreamWrapper(iostream &stream);

2167 14 ~StreamWrapper 0 4 2822 29 StreamWrapper::~StreamWrapper 0 0 0
36
StreamWrapper::~StreamWrapper(void);

2168 12 get_iostream 0 4 2822 27 StreamWrapper::get_iostream 0 1 805 272
////////////////////////////////////////////////////////////////////
//     Function: StreamWrapper::get_iostream
//       Access: Published
//  Description: Returns the iostream this object is wrapping.
////////////////////////////////////////////////////////////////////
57
inline iostream *StreamWrapper::get_iostream(void) const;

2169 12 StreamWriter 0 4 2823 26 StreamWriter::StreamWriter 0 2 810 811 1245
// Filename: streamWriter.I
// Created by:  drose (04Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::Copy Constructor
//       Access: Published
//  Description: The copy constructor does not copy ownership of the
//               stream.
////////////////////////////////////////////////////////////////////
127
inline StreamWriter::StreamWriter(ostream *out, bool owns_stream);
inline StreamWriter::StreamWriter(StreamWriter const &copy);

2170 10 operator = 0 4 2823 24 StreamWriter::operator = 0 1 812 314
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::Copy Assignment Operator
//       Access: Published
//  Description: The copy constructor does not copy ownership of the
//               stream.
////////////////////////////////////////////////////////////////////
63
inline void StreamWriter::operator =(StreamWriter const &copy);

2171 13 ~StreamWriter 0 4 2823 27 StreamWriter::~StreamWriter 0 0 223
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::Destructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
41
inline StreamWriter::~StreamWriter(void);

2172 11 get_ostream 0 4 2823 25 StreamWriter::get_ostream 0 1 813 251
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::get_ostream
//       Access: Published
//  Description: Returns the stream in use.
////////////////////////////////////////////////////////////////////
54
inline ostream *StreamWriter::get_ostream(void) const;

2173 8 add_bool 0 4 2823 22 StreamWriter::add_bool 0 1 814 257
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_bool
//       Access: Published
//  Description: Adds a boolean value to the stream.
////////////////////////////////////////////////////////////////////
47
inline void StreamWriter::add_bool(bool value);

2174 8 add_int8 0 4 2823 22 StreamWriter::add_int8 0 1 815 264
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_int8
//       Access: Published
//  Description: Adds a signed 8-bit integer to the stream.
////////////////////////////////////////////////////////////////////
54
inline void StreamWriter::add_int8(signed char value);

2175 9 add_uint8 0 4 2823 23 StreamWriter::add_uint8 0 1 816 268
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_uint8
//       Access: Published
//  Description: Adds an unsigned 8-bit integer to the stream.
////////////////////////////////////////////////////////////////////
57
inline void StreamWriter::add_uint8(unsigned char value);

2176 9 add_int16 0 4 2823 23 StreamWriter::add_int16 0 1 817 316
// The default numeric packing is little-endian.

////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_int16
//       Access: Published
//  Description: Adds a signed 16-bit integer to the stream.
////////////////////////////////////////////////////////////////////
53
inline void StreamWriter::add_int16(short int value);

2177 9 add_int32 0 4 2823 23 StreamWriter::add_int32 0 1 818 316
// The default numeric packing is little-endian.

////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_int32
//       Access: Published
//  Description: Adds a signed 32-bit integer to the stream.
////////////////////////////////////////////////////////////////////
47
inline void StreamWriter::add_int32(int value);

2178 9 add_int64 0 4 2823 23 StreamWriter::add_int64 0 1 819 266
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_int64
//       Access: Published
//  Description: Adds a signed 64-bit integer to the stream.
////////////////////////////////////////////////////////////////////
51
inline void StreamWriter::add_int64(__int64 value);

2179 10 add_uint16 0 4 2823 24 StreamWriter::add_uint16 0 1 820 270
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_uint16
//       Access: Published
//  Description: Adds an unsigned 16-bit integer to the stream.
////////////////////////////////////////////////////////////////////
63
inline void StreamWriter::add_uint16(unsigned short int value);

2180 10 add_uint32 0 4 2823 24 StreamWriter::add_uint32 0 1 821 270
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_uint32
//       Access: Published
//  Description: Adds an unsigned 32-bit integer to the stream.
////////////////////////////////////////////////////////////////////
57
inline void StreamWriter::add_uint32(unsigned int value);

2181 10 add_uint64 0 4 2823 24 StreamWriter::add_uint64 0 1 822 270
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_uint64
//       Access: Published
//  Description: Adds an unsigned 64-bit integer to the stream.
////////////////////////////////////////////////////////////////////
61
inline void StreamWriter::add_uint64(unsigned __int64 value);

2182 11 add_float32 0 4 2823 25 StreamWriter::add_float32 0 1 823 455
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_float32
//       Access: Published
//  Description: Adds a 32-bit single-precision floating-point number
//               to the stream.  Since this kind of float is not
//               necessarily portable across different architectures,
//               special care is required.
////////////////////////////////////////////////////////////////////
51
inline void StreamWriter::add_float32(float value);

2183 11 add_float64 0 4 2823 25 StreamWriter::add_float64 0 1 824 275
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_float64
//       Access: Published
//  Description: Adds a 64-bit floating-point number to the stream.
////////////////////////////////////////////////////////////////////
52
inline void StreamWriter::add_float64(double value);

2184 12 add_be_int16 0 4 2823 26 StreamWriter::add_be_int16 0 1 825 372
// These functions pack numbers big-endian, in case that's desired.

////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_int16
//       Access: Published
//  Description: Adds a signed 16-bit big-endian integer to the
//               streamWriter.
////////////////////////////////////////////////////////////////////
56
inline void StreamWriter::add_be_int16(short int value);

2185 12 add_be_int32 0 4 2823 26 StreamWriter::add_be_int32 0 1 826 372
// These functions pack numbers big-endian, in case that's desired.

////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_int32
//       Access: Published
//  Description: Adds a signed 32-bit big-endian integer to the
//               streamWriter.
////////////////////////////////////////////////////////////////////
50
inline void StreamWriter::add_be_int32(int value);

2186 12 add_be_int64 0 4 2823 26 StreamWriter::add_be_int64 0 1 827 303
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_int64
//       Access: Published
//  Description: Adds a signed 64-bit big-endian integer to the
//               streamWriter.
////////////////////////////////////////////////////////////////////
54
inline void StreamWriter::add_be_int64(__int64 value);

2187 13 add_be_uint16 0 4 2823 27 StreamWriter::add_be_uint16 0 1 828 307
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_uint16
//       Access: Published
//  Description: Adds an unsigned 16-bit big-endian integer to the
//               streamWriter.
////////////////////////////////////////////////////////////////////
66
inline void StreamWriter::add_be_uint16(unsigned short int value);

2188 13 add_be_uint32 0 4 2823 27 StreamWriter::add_be_uint32 0 1 829 307
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_uint32
//       Access: Published
//  Description: Adds an unsigned 32-bit big-endian integer to the
//               streamWriter.
////////////////////////////////////////////////////////////////////
60
inline void StreamWriter::add_be_uint32(unsigned int value);

2189 13 add_be_uint64 0 4 2823 27 StreamWriter::add_be_uint64 0 1 830 307
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_uint64
//       Access: Published
//  Description: Adds an unsigned 64-bit big-endian integer to the
//               streamWriter.
////////////////////////////////////////////////////////////////////
64
inline void StreamWriter::add_be_uint64(unsigned __int64 value);

2190 14 add_be_float32 0 4 2823 28 StreamWriter::add_be_float32 0 1 831 469
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_float32
//       Access: Published
//  Description: Adds a 32-bit single-precision big-endian
//               floating-point number to the stream.  Since this
//               kind of float is not necessarily portable across
//               different architectures, special care is required.
////////////////////////////////////////////////////////////////////
54
inline void StreamWriter::add_be_float32(float value);

2191 14 add_be_float64 0 4 2823 28 StreamWriter::add_be_float64 0 1 832 312
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_float64
//       Access: Published
//  Description: Adds a 64-bit big-endian floating-point number to the
//               streamWriter.
////////////////////////////////////////////////////////////////////
55
inline void StreamWriter::add_be_float64(double value);

2192 10 add_string 0 4 2823 24 StreamWriter::add_string 0 1 833 334
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_string
//       Access: Published
//  Description: Adds a variable-length string to the stream.  This
//               actually adds a count followed by n bytes.
////////////////////////////////////////////////////////////////////
70
inline void StreamWriter::add_string(basic_string< char > const &str);

2193 12 add_string32 0 4 2823 26 StreamWriter::add_string32 0 1 834 316
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_string32
//       Access: Published
//  Description: Adds a variable-length string to the stream, using a
//               32-bit length field.
////////////////////////////////////////////////////////////////////
72
inline void StreamWriter::add_string32(basic_string< char > const &str);

2194 12 add_z_string 0 4 2823 26 StreamWriter::add_z_string 0 1 835 316
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_z_string
//       Access: Published
//  Description: Adds a variable-length string to the stream, as a
//               NULL-terminated string.
////////////////////////////////////////////////////////////////////
65
inline void StreamWriter::add_z_string(basic_string< char > str);

2195 16 add_fixed_string 0 4 2823 30 StreamWriter::add_fixed_string 0 1 836 517
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_fixed_string
//       Access: Published
//  Description: Adds a fixed-length string to the stream.  If the
//               string given is less than the requested size, this
//               will pad the string out with zeroes; if it is greater
//               than the requested size, this will silently truncate
//               the string.
////////////////////////////////////////////////////////////////////
95
inline void StreamWriter::add_fixed_string(basic_string< char > const &str, unsigned int size);

2196 9 pad_bytes 0 4 2823 23 StreamWriter::pad_bytes 0 1 837 0
48
void StreamWriter::pad_bytes(unsigned int size);

2197 11 append_data 0 4 2823 25 StreamWriter::append_data 0 1 838 602
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::append_data
//       Access: Published
//  Description: Appends some more raw data to the end of the
//               streamWriter.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::append_data
//       Access: Published
//  Description: Appends some more raw data to the end of the
//               streamWriter.
////////////////////////////////////////////////////////////////////
148
inline void StreamWriter::append_data(void const *data, unsigned int size);
inline void StreamWriter::append_data(basic_string< char > const &data);

2198 5 flush 0 4 2823 19 StreamWriter::flush 0 1 839 258
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::flush
//       Access: Published
//  Description: Calls flush() on the underlying stream.
////////////////////////////////////////////////////////////////////
38
inline void StreamWriter::flush(void);

2199 5 write 0 4 2823 19 StreamWriter::write 0 1 840 371
////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::write
//       Access: Published
//  Description: A synonym of append_data().  This is useful when
//               assigning the StreamWriter to sys.stderr and/or
//               sys.stdout in Python.
////////////////////////////////////////////////////////////////////
65
inline void StreamWriter::write(basic_string< char > const &str);

2200 11 TextEncoder 0 4 2824 24 TextEncoder::TextEncoder 0 2 841 842 940
// Filename: textEncoder.I
// Created by:  drose (26Mar03)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::Copy Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
96
inline TextEncoder::TextEncoder(void);
inline TextEncoder::TextEncoder(TextEncoder const &copy);

2201 12 set_encoding 0 4 2824 25 TextEncoder::set_encoding 0 1 843 692
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_encoding
//       Access: Published
//  Description: Specifies how the string set via set_text() is to be
//               interpreted.  The default, E_iso8859, means a
//               standard string with one-byte characters
//               (i.e. ASCII).  Other encodings are possible to take
//               advantage of character sets with more than 256
//               characters.
//
//               This affects only future calls to set_text(); it does
//               not change text that was set previously.
////////////////////////////////////////////////////////////////////
70
inline void TextEncoder::set_encoding(TextEncoder::Encoding encoding);

2202 12 get_encoding 0 4 2824 25 TextEncoder::get_encoding 0 1 844 344
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_encoding
//       Access: Published
//  Description: Returns the encoding by which the string set via
//               set_text() is to be interpreted.  See set_encoding().
////////////////////////////////////////////////////////////////////
67
inline TextEncoder::Encoding TextEncoder::get_encoding(void) const;

2203 20 set_default_encoding 0 4 2824 33 TextEncoder::set_default_encoding 0 1 845 387
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_default_encoding
//       Access: Published, Static
//  Description: Specifies the default encoding to be used for all
//               subsequently created TextEncoder objects.  See
//               set_encoding().
////////////////////////////////////////////////////////////////////
85
static inline void TextEncoder::set_default_encoding(TextEncoder::Encoding encoding);

2204 20 get_default_encoding 0 4 2824 33 TextEncoder::get_default_encoding 0 1 846 387
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_default_encoding
//       Access: Published, Static
//  Description: Specifies the default encoding to be used for all
//               subsequently created TextEncoder objects.  See
//               set_encoding().
////////////////////////////////////////////////////////////////////
76
static inline TextEncoder::Encoding TextEncoder::get_default_encoding(void);

2205 8 set_text 0 4 2824 21 TextEncoder::set_text 0 2 847 848 1135
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_text
//       Access: Published
//  Description: Changes the text that is stored in the encoder.  The
//               text should be encoded according to the method
//               indicated by set_encoding().  Subsequent calls to
//               get_text() will return this same string, while
//               get_wtext() will return the decoded version of the
//               string.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_text
//       Access: Published
//  Description: The two-parameter version of set_text() accepts an
//               explicit encoding; the text is immediately decoded
//               and stored as a wide-character string.  Subsequent
//               calls to get_text() will return the same text
//               re-encoded using whichever encoding is specified by
//               set_encoding().
////////////////////////////////////////////////////////////////////
169
inline void TextEncoder::set_text(basic_string< char > const &text);
inline void TextEncoder::set_text(basic_string< char > const &text, TextEncoder::Encoding encoding);

2206 10 clear_text 0 4 2824 23 TextEncoder::clear_text 0 1 849 261
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::clear_text
//       Access: Published
//  Description: Removes the text from the TextEncoder.
////////////////////////////////////////////////////////////////////
42
inline void TextEncoder::clear_text(void);

2207 8 has_text 0 4 2824 21 TextEncoder::has_text 0 1 850 220
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::has_text
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
46
inline bool TextEncoder::has_text(void) const;

2208 10 make_upper 0 4 2824 23 TextEncoder::make_upper 0 1 851 0
35
void TextEncoder::make_upper(void);

2209 10 make_lower 0 4 2824 23 TextEncoder::make_lower 0 1 852 0
35
void TextEncoder::make_lower(void);

2210 8 get_text 0 4 2824 21 TextEncoder::get_text 0 2 853 854 618
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_text
//       Access: Published
//  Description: Returns the current text, as encoded via the current
//               encoding system.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_text
//       Access: Published
//  Description: Returns the current text, as encoded via the indicated
//               encoding system.
////////////////////////////////////////////////////////////////////
151
inline basic_string< char > TextEncoder::get_text(void) const;
inline basic_string< char > TextEncoder::get_text(TextEncoder::Encoding encoding) const;

2211 11 append_text 0 4 2824 24 TextEncoder::append_text 0 1 855 300
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::append_text
//       Access: Published
//  Description: Appends the indicates string to the end of the stored
//               text.
////////////////////////////////////////////////////////////////////
71
inline void TextEncoder::append_text(basic_string< char > const &text);

2212 19 append_unicode_char 0 4 2824 32 TextEncoder::append_unicode_char 0 1 856 380
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::append_unicode_char
//       Access: Published
//  Description: Appends a single character to the end of the stored
//               text.  This may be a wide character, up to 16 bits in
//               Unicode.
////////////////////////////////////////////////////////////////////
60
inline void TextEncoder::append_unicode_char(int character);

2213 13 get_num_chars 0 4 2824 26 TextEncoder::get_num_chars 0 1 857 411
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_num_chars
//       Access: Published
//  Description: Returns the number of characters in the stored text.
//               This is a count of wide characters, after the string
//               has been decoded according to set_encoding().
////////////////////////////////////////////////////////////////////
50
inline int TextEncoder::get_num_chars(void) const;

2214 16 get_unicode_char 0 4 2824 29 TextEncoder::get_unicode_char 0 1 858 459
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_unicode_char
//       Access: Published
//  Description: Returns the Unicode value of the nth character in the
//               stored text.  This may be a wide character (greater
//               than 255), after the string has been decoded
//               according to set_encoding().
////////////////////////////////////////////////////////////////////
58
inline int TextEncoder::get_unicode_char(int index) const;

2215 16 set_unicode_char 0 4 2824 29 TextEncoder::set_unicode_char 0 1 859 456
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_unicode_char
//       Access: Published
//  Description: Sets the Unicode value of the nth character in the
//               stored text.  This may be a wide character (greater
//               than 255), after the string has been decoded
//               according to set_encoding().
////////////////////////////////////////////////////////////////////
68
inline void TextEncoder::set_unicode_char(int index, int character);

2216 16 get_encoded_char 0 4 2824 29 TextEncoder::get_encoded_char 0 2 860 861 668
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_encoded_char
//       Access: Published
//  Description: Returns the nth char of the stored text, as a one-,
//               two-, or three-byte encoded string.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_encoded_char
//       Access: Published
//  Description: Returns the nth char of the stored text, as a one-,
//               two-, or three-byte encoded string.
////////////////////////////////////////////////////////////////////
183
inline basic_string< char > TextEncoder::get_encoded_char(int index) const;
inline basic_string< char > TextEncoder::get_encoded_char(int index, TextEncoder::Encoding encoding) const;

2217 17 get_text_as_ascii 0 4 2824 30 TextEncoder::get_text_as_ascii 0 1 862 1136
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_text_as_ascii
//       Access: Published
//  Description: Returns the text associated with the node, converted
//               as nearly as possible to a fully-ASCII
//               representation.  This means replacing accented
//               letters with their unaccented ASCII equivalents.
//
//               It is possible that some characters in the string
//               cannot be converted to ASCII.  (The string may
//               involve symbols like the copyright symbol, for
//               instance, or it might involve letters in some other
//               alphabet such as Greek or Cyrillic, or even Latin
//               letters like thorn or eth that are not part of the
//               ASCII character set.)  In this case, as much of the
//               string as possible will be converted to ASCII, and
//               the nonconvertible characters will remain encoded in
//               the encoding specified by set_encoding().
////////////////////////////////////////////////////////////////////
71
inline basic_string< char > TextEncoder::get_text_as_ascii(void) const;

2218 13 reencode_text 0 4 2824 26 TextEncoder::reencode_text 0 1 863 559
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::reencode_text
//       Access: Published, Static
//  Description: Given the indicated text string, which is assumed to
//               be encoded via the encoding "from", decodes it and
//               then reencodes it into the encoding "to", and returns
//               the newly encoded string.  This does not change or
//               affect any properties on the TextEncoder itself.
////////////////////////////////////////////////////////////////////
150
static inline basic_string< char > TextEncoder::reencode_text(basic_string< char > const &text, TextEncoder::Encoding from, TextEncoder::Encoding to);

2219 15 unicode_isalpha 0 4 2824 28 TextEncoder::unicode_isalpha 0 1 864 408
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_isalpha
//       Access: Published, Static
//  Description: Returns true if the indicated character is an
//               alphabetic letter, false otherwise.  This is akin to
//               ctype's isalpha(), extended to Unicode.
////////////////////////////////////////////////////////////////////
63
static inline bool TextEncoder::unicode_isalpha(int character);

2220 15 unicode_isdigit 0 4 2824 28 TextEncoder::unicode_isdigit 0 1 865 403
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_isdigit
//       Access: Published, Static
//  Description: Returns true if the indicated character is a
//               numeric digit, false otherwise.  This is akin to
//               ctype's isdigit(), extended to Unicode.
////////////////////////////////////////////////////////////////////
63
static inline bool TextEncoder::unicode_isdigit(int character);

2221 15 unicode_ispunct 0 4 2824 28 TextEncoder::unicode_ispunct 0 1 866 406
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_ispunct
//       Access: Published, Static
//  Description: Returns true if the indicated character is a
//               punctuation mark, false otherwise.  This is akin to
//               ctype's ispunct(), extended to Unicode.
////////////////////////////////////////////////////////////////////
63
static inline bool TextEncoder::unicode_ispunct(int character);

2222 15 unicode_islower 0 4 2824 28 TextEncoder::unicode_islower 0 1 867 406
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_islower
//       Access: Published, Static
//  Description: Returns true if the indicated character is a
//               lowercase letter, false otherwise.  This is akin to
//               ctype's islower(), extended to Unicode.
////////////////////////////////////////////////////////////////////
63
static inline bool TextEncoder::unicode_islower(int character);

2223 15 unicode_isupper 0 4 2824 28 TextEncoder::unicode_isupper 0 1 868 407
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_isupper
//       Access: Published, Static
//  Description: Returns true if the indicated character is an
//               uppercase letter, false otherwise.  This is akin to
//               ctype's isupper(), extended to Unicode.
////////////////////////////////////////////////////////////////////
63
static inline bool TextEncoder::unicode_isupper(int character);

2224 15 unicode_isspace 0 4 2824 28 TextEncoder::unicode_isspace 0 1 869 407
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_isspace
//       Access: Published, Static
//  Description: Returns true if the indicated character is a
//               whitespace letter, false otherwise.  This is akin to
//               ctype's isspace(), extended to Unicode.
////////////////////////////////////////////////////////////////////
63
static inline bool TextEncoder::unicode_isspace(int character);

2225 15 unicode_toupper 0 4 2824 28 TextEncoder::unicode_toupper 0 1 870 391
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_toupper
//       Access: Published, Static
//  Description: Returns the uppercase equivalent of the given Unicode
//               character.  This is akin to ctype's toupper(),
//               extended to Unicode.
////////////////////////////////////////////////////////////////////
62
static inline int TextEncoder::unicode_toupper(int character);

2226 15 unicode_tolower 0 4 2824 28 TextEncoder::unicode_tolower 0 1 871 391
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_tolower
//       Access: Published, Static
//  Description: Returns the uppercase equivalent of the given Unicode
//               character.  This is akin to ctype's tolower(),
//               extended to Unicode.
////////////////////////////////////////////////////////////////////
62
static inline int TextEncoder::unicode_tolower(int character);

2227 5 upper 0 4 2824 18 TextEncoder::upper 0 2 872 873 668
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::upper
//       Access: Published, Static
//  Description: Converts the string to uppercase, assuming the string
//               is encoded in the default encoding.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::upper
//       Access: Published, Static
//  Description: Converts the string to uppercase, assuming the string
//               is encoded in the indicated encoding.
////////////////////////////////////////////////////////////////////
213
static inline basic_string< char > TextEncoder::upper(basic_string< char > const &source);
static inline basic_string< char > TextEncoder::upper(basic_string< char > const &source, TextEncoder::Encoding encoding);

2228 5 lower 0 4 2824 18 TextEncoder::lower 0 2 874 875 668
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::lower
//       Access: Published, Static
//  Description: Converts the string to lowercase, assuming the string
//               is encoded in the default encoding.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::lower
//       Access: Published, Static
//  Description: Converts the string to lowercase, assuming the string
//               is encoded in the indicated encoding.
////////////////////////////////////////////////////////////////////
213
static inline basic_string< char > TextEncoder::lower(basic_string< char > const &source);
static inline basic_string< char > TextEncoder::lower(basic_string< char > const &source, TextEncoder::Encoding encoding);

2229 9 set_wtext 0 4 2824 22 TextEncoder::set_wtext 0 1 876 558
// Direct support for wide-character strings.  Now publishable with
// the new wstring support in interrogate.

////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_wtext
//       Access: Published
//  Description: Changes the text that is stored in the encoder.
//               Subsequent calls to get_wtext() will return this same
//               string, while get_text() will return the encoded
//               version of the string.
////////////////////////////////////////////////////////////////////
73
inline void TextEncoder::set_wtext(basic_string< wchar_t > const &wtext);

2230 9 get_wtext 0 4 2824 22 TextEncoder::get_wtext 0 1 877 428
// Direct support for wide-character strings.  Now publishable with
// the new wstring support in interrogate.

////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_wtext
//       Access: Published
//  Description: Returns the text associated with the TextEncoder, as
//               a wide-character string.
////////////////////////////////////////////////////////////////////
73
inline basic_string< wchar_t > const &TextEncoder::get_wtext(void) const;

2231 12 append_wtext 0 4 2824 25 TextEncoder::append_wtext 0 1 878 316
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::append_wtext
//       Access: Published
//  Description: Appends the indicates string to the end of the stored
//               wide-character text.
////////////////////////////////////////////////////////////////////
75
inline void TextEncoder::append_wtext(basic_string< wchar_t > const &text);

2232 18 get_wtext_as_ascii 0 4 2824 31 TextEncoder::get_wtext_as_ascii 0 1 879 0
68
basic_string< wchar_t > TextEncoder::get_wtext_as_ascii(void) const;

2233 8 is_wtext 0 4 2824 21 TextEncoder::is_wtext 0 1 880 0
39
bool TextEncoder::is_wtext(void) const;

2234 12 encode_wchar 0 4 2824 25 TextEncoder::encode_wchar 0 1 881 0
98
static basic_string< char > TextEncoder::encode_wchar(wchar_t ch, TextEncoder::Encoding encoding);

2235 12 encode_wtext 0 4 2824 25 TextEncoder::encode_wtext 0 2 882 883 330
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::encode_wtext
//       Access: Published
//  Description: Encodes a wide-text string into a single-char string,
//               according to the current encoding.
////////////////////////////////////////////////////////////////////
223
inline basic_string< char > TextEncoder::encode_wtext(basic_string< wchar_t > const &wtext) const;
static basic_string< char > TextEncoder::encode_wtext(basic_string< wchar_t > const &wtext, TextEncoder::Encoding encoding);

2236 11 decode_text 0 4 2824 24 TextEncoder::decode_text 0 2 884 885 332
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::decode_text
//       Access: Published
//  Description: Returns the given wstring decoded to a single-byte
//               string, via the current encoding system.
////////////////////////////////////////////////////////////////////
219
inline basic_string< wchar_t > TextEncoder::decode_text(basic_string< char > const &text) const;
static basic_string< wchar_t > TextEncoder::decode_text(basic_string< char > const &text, TextEncoder::Encoding encoding);

2237 12 ~TextEncoder 0 4 2824 25 TextEncoder::~TextEncoder 0 0 0
32
TextEncoder::~TextEncoder(void);

2238 10 TypeHandle 0 4 2826 22 TypeHandle::TypeHandle 0 2 886 887 1252
// Filename: typeHandle.I
// Created by:  drose (22Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Constructor
//       Access: Published
//  Description: The default constructor must do nothing, because we
//               can't guarantee ordering of static initializers.  If
//               the constructor tried to initialize its value, it
//               might happen after the value had already been set
//               previously by another static initializer!
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Copy Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
91
inline TypeHandle::TypeHandle(void);
inline TypeHandle::TypeHandle(TypeHandle const &copy);

2239 4 make 0 4 2826 16 TypeHandle::make 0 1 888 0
54
static PyObject *TypeHandle::make(PyObject *classobj);

2240 11 operator == 0 4 2826 23 TypeHandle::operator == 0 1 889 244
// HAVE_PYTHON

////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Equality Operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
67
inline bool TypeHandle::operator ==(TypeHandle const &other) const;

2241 11 operator != 0 4 2826 23 TypeHandle::operator != 0 1 890 230
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Inequality Operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
67
inline bool TypeHandle::operator !=(TypeHandle const &other) const;

2242 10 operator < 0 4 2826 22 TypeHandle::operator < 0 1 891 228
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Ordering Operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
66
inline bool TypeHandle::operator <(TypeHandle const &other) const;

2243 11 operator <= 0 4 2826 23 TypeHandle::operator <= 0 1 892 228
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Ordering Operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
67
inline bool TypeHandle::operator <=(TypeHandle const &other) const;

2244 10 operator > 0 4 2826 22 TypeHandle::operator > 0 1 893 228
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Ordering Operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
66
inline bool TypeHandle::operator >(TypeHandle const &other) const;

2245 11 operator >= 0 4 2826 23 TypeHandle::operator >= 0 1 894 228
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Ordering Operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
67
inline bool TypeHandle::operator >=(TypeHandle const &other) const;

2246 10 compare_to 0 4 2826 22 TypeHandle::compare_to 0 1 895 463
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::compare_to
//       Access: Published
//  Description: Sorts TypeHandles arbitrarily (according to <, >,
//               etc.).  Returns a number less than 0 if this type
//               sorts before the other one, greater than zero if it
//               sorts after, 0 if they are equivalent.
////////////////////////////////////////////////////////////////////
65
inline int TypeHandle::compare_to(TypeHandle const &other) const;

2247 8 get_hash 0 4 2826 20 TypeHandle::get_hash 0 1 896 263
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_hash
//       Access: Published
//  Description: Returns a hash code suitable for phash_map.
////////////////////////////////////////////////////////////////////
53
inline unsigned int TypeHandle::get_hash(void) const;

2248 8 get_name 0 4 2826 20 TypeHandle::get_name 0 2 897 898 484
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_name
//       Access: Published
//  Description: Returns the name of the type.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
////////////////////////////////////////////////////////////////////
109
inline basic_string< char > TypeHandle::get_name(TypedObject *object = ((TypedObject *)((void *)(0)))) const;

2249 15 is_derived_from 0 4 2826 27 TypeHandle::is_derived_from 0 2 899 900 557
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::is_derived_from
//       Access: Published
//  Description: Returns true if this type is derived from the
//               indicated type, false otherwise.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
////////////////////////////////////////////////////////////////////
119
inline bool TypeHandle::is_derived_from(TypeHandle parent, TypedObject *object = ((TypedObject *)((void *)(0)))) const;

2250 22 get_num_parent_classes 0 4 2826 34 TypeHandle::get_num_parent_classes 0 2 901 902 878
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_parent_classes
//       Access: Published
//  Description: Returns the number of parent classes that this
//               type is known to have.  This may then be used to
//               index into get_parent_class().  The result will be 0
//               if this class does not inherit from any other
//               classes, 1 if normal, single inheritance is in
//               effect, or greater than one if multiple inheritance
//               is in effect.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
////////////////////////////////////////////////////////////////////
106
inline int TypeHandle::get_num_parent_classes(TypedObject *object = ((TypedObject *)((void *)(0)))) const;

2251 16 get_parent_class 0 4 2826 28 TypeHandle::get_parent_class 0 1 903 383
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_parent_classes
//       Access: Published
//  Description: Returns the nth parent class of this type.  The index
//               should be in the range 0 <= index <
//               get_num_parent_classes().
////////////////////////////////////////////////////////////////////
64
inline TypeHandle TypeHandle::get_parent_class(int index) const;

2252 21 get_num_child_classes 0 4 2826 33 TypeHandle::get_num_child_classes 0 2 904 905 626
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_child_classes
//       Access: Published
//  Description: Returns the number of child classes that this
//               type is known to have.  This may then be used to
//               index into get_child_class().
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
////////////////////////////////////////////////////////////////////
105
inline int TypeHandle::get_num_child_classes(TypedObject *object = ((TypedObject *)((void *)(0)))) const;

2253 15 get_child_class 0 4 2826 27 TypeHandle::get_child_class 0 1 906 380
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_child_classes
//       Access: Published
//  Description: Returns the nth child class of this type.  The index
//               should be in the range 0 <= index <
//               get_num_child_classes().
////////////////////////////////////////////////////////////////////
63
inline TypeHandle TypeHandle::get_child_class(int index) const;

2254 18 get_parent_towards 0 4 2826 30 TypeHandle::get_parent_towards 0 2 907 908 959
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_parent_towards
//       Access: Published
//  Description: Returns the parent class that is in a direct line of
//               inheritance to the indicated ancestor class.  This is
//               useful in the presence of multiple inheritance to try
//               to determine what properties an unknown type may
//               have.
//
//               The return value is TypeHandle::none() if the type
//               does not inherit from the ancestor.  If ancestor is
//               the same as this type, the return value is this type.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
////////////////////////////////////////////////////////////////////
130
inline TypeHandle TypeHandle::get_parent_towards(TypeHandle ancestor, TypedObject *object = ((TypedObject *)((void *)(0)))) const;

2255 24 get_best_parent_from_Set 0 4 2826 36 TypeHandle::get_best_parent_from_Set 0 1 909 274
////////////////////////////////////////////////////////////////////
//     Function: get_best_parent_from_Set
//       Access: Published
//  Description: Return the Index of the BEst fit Classs from a set
////////////////////////////////////////////////////////////////////
84
inline int TypeHandle::get_best_parent_from_Set(set< int > const &legal_vals) const;

2256 16 get_memory_usage 0 4 2826 28 TypeHandle::get_memory_usage 0 1 910 0
77
int TypeHandle::get_memory_usage(TypeHandle::MemoryClass memory_class) const;

2257 16 inc_memory_usage 0 4 2826 28 TypeHandle::inc_memory_usage 0 1 911 0
82
void TypeHandle::inc_memory_usage(TypeHandle::MemoryClass memory_class, int size);

2258 16 dec_memory_usage 0 4 2826 28 TypeHandle::dec_memory_usage 0 1 912 0
82
void TypeHandle::dec_memory_usage(TypeHandle::MemoryClass memory_class, int size);

2259 9 get_index 0 4 2826 21 TypeHandle::get_index 0 1 913 654
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_index
//       Access: Published
//  Description: Returns the integer index associated with this
//               TypeHandle. Each different TypeHandle will have a
//               different index.  However, you probably shouldn't be
//               using this method; you should just treat the
//               TypeHandles as opaque classes.  This is provided for
//               the convenience of non-C++ scripting languages to
//               build a hashtable of TypeHandles.
////////////////////////////////////////////////////////////////////
45
inline int TypeHandle::get_index(void) const;

2260 6 output 0 4 2826 18 TypeHandle::output 0 1 914 218
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
51
inline void TypeHandle::output(ostream &out) const;

2261 4 none 0 4 2826 16 TypeHandle::none 0 1 915 315
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::none
//       Access: Published, Static
//  Description: Returns a special zero-valued TypeHandle that is used
//               to indicate no type.
////////////////////////////////////////////////////////////////////
48
static inline TypeHandle TypeHandle::none(void);

2262 11 ~TypeHandle 0 4 2826 23 TypeHandle::~TypeHandle 0 0 0
30
TypeHandle::~TypeHandle(void);

2263 9 find_type 0 4 2828 23 TypeRegistry::find_type 0 1 916 0
75
TypeHandle TypeRegistry::find_type(basic_string< char > const &name) const;

2264 15 find_type_by_id 0 4 2828 29 TypeRegistry::find_type_by_id 0 1 917 0
55
TypeHandle TypeRegistry::find_type_by_id(int id) const;

2265 8 get_name 0 4 2828 22 TypeRegistry::get_name 0 1 918 0
88
basic_string< char > TypeRegistry::get_name(TypeHandle type, TypedObject *object) const;

2266 15 is_derived_from 0 4 2828 29 TypeRegistry::is_derived_from 0 1 919 0
97
bool TypeRegistry::is_derived_from(TypeHandle child, TypeHandle base, TypedObject *child_object);

2267 19 get_num_typehandles 0 4 2828 33 TypeRegistry::get_num_typehandles 0 1 920 0
44
int TypeRegistry::get_num_typehandles(void);

2268 14 get_typehandle 0 4 2828 28 TypeRegistry::get_typehandle 0 1 921 0
47
TypeHandle TypeRegistry::get_typehandle(int n);

2269 20 get_num_root_classes 0 4 2828 34 TypeRegistry::get_num_root_classes 0 1 922 0
45
int TypeRegistry::get_num_root_classes(void);

2270 14 get_root_class 0 4 2828 28 TypeRegistry::get_root_class 0 1 923 0
47
TypeHandle TypeRegistry::get_root_class(int n);

2271 22 get_num_parent_classes 0 4 2828 36 TypeRegistry::get_num_parent_classes 0 1 924 0
92
int TypeRegistry::get_num_parent_classes(TypeHandle child, TypedObject *child_object) const;

2272 16 get_parent_class 0 4 2828 30 TypeRegistry::get_parent_class 0 1 925 0
77
TypeHandle TypeRegistry::get_parent_class(TypeHandle child, int index) const;

2273 21 get_num_child_classes 0 4 2828 35 TypeRegistry::get_num_child_classes 0 1 926 0
91
int TypeRegistry::get_num_child_classes(TypeHandle child, TypedObject *child_object) const;

2274 15 get_child_class 0 4 2828 29 TypeRegistry::get_child_class 0 1 927 0
76
TypeHandle TypeRegistry::get_child_class(TypeHandle child, int index) const;

2275 18 get_parent_towards 0 4 2828 32 TypeRegistry::get_parent_towards 0 1 928 0
106
TypeHandle TypeRegistry::get_parent_towards(TypeHandle child, TypeHandle base, TypedObject *child_object);

2276 16 reregister_types 0 4 2828 30 TypeRegistry::reregister_types 0 1 929 0
49
static void TypeRegistry::reregister_types(void);

2277 5 write 0 4 2828 19 TypeRegistry::write 0 1 930 0
45
void TypeRegistry::write(ostream &out) const;

2278 3 ptr 0 4 2828 17 TypeRegistry::ptr 0 1 931 63
// ptr() returns the pointer to the global TypeRegistry object.
45
static TypeRegistry *TypeRegistry::ptr(void);

2279 13 ~TypeRegistry 0 4 2828 27 TypeRegistry::~TypeRegistry 0 0 0
34
TypeRegistry::~TypeRegistry(void);

2280 20 upcast_to_MemoryBase 0 12 2829 33 TypedObject::upcast_to_MemoryBase 0 1 937 37
upcast from TypedObject to MemoryBase
52
MemoryBase *TypedObject::upcast_to_MemoryBase(void);

2281 23 downcast_to_TypedObject 0 12 2780 35 MemoryBase::downcast_to_TypedObject 0 1 938 39
downcast from MemoryBase to TypedObject
55
TypedObject *MemoryBase::downcast_to_TypedObject(void);

2282 12 ~TypedObject 0 6 2829 25 TypedObject::~TypedObject 0 0 44
// A virtual destructor is just a good idea.
40
virtual TypedObject::~TypedObject(void);

2283 8 get_type 0 6 2829 21 TypedObject::get_type 0 1 932 79
// Derived classes should override this function to return
// get_class_type().
57
virtual TypeHandle TypedObject::get_type(void) const = 0;

2284 14 get_type_index 0 4 2829 27 TypedObject::get_type_index 0 1 933 441
////////////////////////////////////////////////////////////////////
//     Function: TypedObject::get_type_index
//       Access: Published
//  Description: Returns the internal index number associated with
//               this object's TypeHandle, a unique number for each
//               different type.  This is equivalent to
//               get_type().get_index().
////////////////////////////////////////////////////////////////////
51
inline int TypedObject::get_type_index(void) const;

2285 10 is_of_type 0 4 2829 23 TypedObject::is_of_type 0 1 934 313
////////////////////////////////////////////////////////////////////
//     Function: TypedObject::is_of_type
//       Access: Published
//  Description: Returns true if the current object is or derives from
//               the indicated type.
////////////////////////////////////////////////////////////////////
61
inline bool TypedObject::is_of_type(TypeHandle handle) const;

2286 13 is_exact_type 0 4 2829 26 TypedObject::is_exact_type 0 1 935 308
////////////////////////////////////////////////////////////////////
//     Function: TypedObject::is_exact_type
//       Access: Published
//  Description: Returns true if the current object is the indicated
//               type exactly.
////////////////////////////////////////////////////////////////////
64
inline bool TypedObject::is_exact_type(TypeHandle handle) const;

2287 14 get_class_type 0 4 2829 27 TypedObject::get_class_type 0 1 936 0
52
static TypeHandle TypedObject::get_class_type(void);

2288 7 fstream 0 4 2830 16 fstream::fstream 0 1 939 0
23
fstream::fstream(void);

2289 5 close 0 4 2830 14 fstream::close 0 1 940 0
26
void fstream::close(void);

2290 8 ~fstream 0 4 2830 17 fstream::~fstream 0 0 0
24
fstream::~fstream(void);

2291 8 ifstream 0 4 2831 18 ifstream::ifstream 0 1 941 0
25
ifstream::ifstream(void);

2292 5 close 0 4 2831 15 ifstream::close 0 1 942 0
27
void ifstream::close(void);

2293 9 ~ifstream 0 4 2831 19 ifstream::~ifstream 0 0 0
26
ifstream::~ifstream(void);

2294 8 ofstream 0 4 2832 18 ofstream::ofstream 0 1 943 0
25
ofstream::ofstream(void);

2295 5 close 0 4 2832 15 ofstream::close 0 1 944 0
27
void ofstream::close(void);

2296 9 ~ofstream 0 4 2832 19 ofstream::~ofstream 0 0 0
26
ofstream::~ofstream(void);

2297 11 is_tracking 0 4 2833 24 MemoryUsage::is_tracking 0 1 945 374
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::is_tracking
//       Access: Public, Static
//  Description: Returns true if the MemoryUsage object is currently
//               tracking memory (e.g. track-memory-usage is
//               configured #t).
////////////////////////////////////////////////////////////////////
50
static inline bool MemoryUsage::is_tracking(void);

2298 11 is_counting 0 4 2833 24 MemoryUsage::is_counting 0 1 946 413
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::is_counting
//       Access: Public, Static
//  Description: Returns true if the MemoryUsage object is currently
//               at least counting memory (e.g. this is a Windows
//               debug build), even if it's not fully tracking it.
////////////////////////////////////////////////////////////////////
50
static inline bool MemoryUsage::is_counting(void);

2299 20 get_current_cpp_size 0 4 2833 33 MemoryUsage::get_current_cpp_size 0 1 947 394
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_current_cpp_size
//       Access: Public, Static
//  Description: Returns the total number of bytes of allocated memory
//               consumed by C++ objects, not including the memory
//               previously frozen.
////////////////////////////////////////////////////////////////////
67
static inline unsigned int MemoryUsage::get_current_cpp_size(void);

2300 18 get_total_cpp_size 0 4 2833 31 MemoryUsage::get_total_cpp_size 0 1 948 388
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_total_cpp_size
//       Access: Public, Static
//  Description: Returns the total number of bytes of allocated memory
//               consumed by C++ objects, including the memory
//               previously frozen.
////////////////////////////////////////////////////////////////////
65
static inline unsigned int MemoryUsage::get_total_cpp_size(void);

2301 26 get_panda_heap_single_size 0 4 2833 39 MemoryUsage::get_panda_heap_single_size 0 1 949 366
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_panda_heap_single_size
//       Access: Public, Static
//  Description: Returns the total number of bytes allocated from the
//               heap from code within Panda, for individual objects.
////////////////////////////////////////////////////////////////////
73
static inline unsigned int MemoryUsage::get_panda_heap_single_size(void);

2302 25 get_panda_heap_array_size 0 4 2833 38 MemoryUsage::get_panda_heap_array_size 0 1 950 353
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_panda_heap_array_size
//       Access: Public, Static
//  Description: Returns the total number of bytes allocated from the
//               heap from code within Panda, for arrays.
////////////////////////////////////////////////////////////////////
72
static inline unsigned int MemoryUsage::get_panda_heap_array_size(void);

2303 23 get_panda_heap_overhead 0 4 2833 36 MemoryUsage::get_panda_heap_overhead 0 1 951 465
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_panda_heap_overhead
//       Access: Public, Static
//  Description: Returns the extra bytes allocated from the system
//               that are not immediately used for holding allocated
//               objects.  This can only be determined if
//               ALTERNATIVE_MALLOC is enabled.
////////////////////////////////////////////////////////////////////
70
static inline unsigned int MemoryUsage::get_panda_heap_overhead(void);

2304 19 get_panda_mmap_size 0 4 2833 32 MemoryUsage::get_panda_mmap_size 0 1 952 350
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_panda_mmap_size
//       Access: Public, Static
//  Description: Returns the total number of bytes allocated from the
//               virtual memory pool from code within Panda.
////////////////////////////////////////////////////////////////////
66
static inline unsigned int MemoryUsage::get_panda_mmap_size(void);

2305 17 get_external_size 0 4 2833 30 MemoryUsage::get_external_size 0 1 953 852
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_external_size
//       Access: Public, Static
//  Description: Returns the total number of bytes of allocated memory
//               in the heap that Panda didn't seem to be responsible
//               for.  This includes a few bytes for very low-level
//               objects (like ConfigVariables) that cannot use Panda
//               memory tracking because they are so very low-level.
//
//               This also includes all of the memory that might have
//               been allocated by a high-level interpreter, like
//               Python.
//
//               This number is only available if Panda is able to
//               hook into the actual heap callback.
////////////////////////////////////////////////////////////////////
64
static inline unsigned int MemoryUsage::get_external_size(void);

2306 14 get_total_size 0 4 2833 27 MemoryUsage::get_total_size 0 1 954 348
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_total_size
//       Access: Public, Static
//  Description: Returns the total size of allocated memory consumed
//               by the process, as nearly as can be determined.
////////////////////////////////////////////////////////////////////
61
static inline unsigned int MemoryUsage::get_total_size(void);

2307 16 get_num_pointers 0 4 2833 29 MemoryUsage::get_num_pointers 0 1 955 282
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_num_pointers
//       Access: Public, Static
//  Description: Returns the number of pointers currently active.
////////////////////////////////////////////////////////////////////
54
static inline int MemoryUsage::get_num_pointers(void);

2308 12 get_pointers 0 4 2833 25 MemoryUsage::get_pointers 0 1 956 333
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_pointers
//       Access: Public, Static
//  Description: Fills the indicated MemoryUsagePointers with the set
//               of all pointers currently active.
////////////////////////////////////////////////////////////////////
74
static inline void MemoryUsage::get_pointers(MemoryUsagePointers &result);

2309 20 get_pointers_of_type 0 4 2833 33 MemoryUsage::get_pointers_of_type 0 1 957 380
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_pointers_of_type
//       Access: Public, Static
//  Description: Fills the indicated MemoryUsagePointers with the set
//               of all pointers of the indicated type currently
//               active.
////////////////////////////////////////////////////////////////////
99
static inline void MemoryUsage::get_pointers_of_type(MemoryUsagePointers &result, TypeHandle type);

2310 19 get_pointers_of_age 0 4 2833 32 MemoryUsage::get_pointers_of_age 0 1 958 416
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_pointers_of_age
//       Access: Public, Static
//  Description: Fills the indicated MemoryUsagePointers with the set
//               of all pointers that were allocated within the range
//               of the indicated number of seconds ago.
////////////////////////////////////////////////////////////////////
105
static inline void MemoryUsage::get_pointers_of_age(MemoryUsagePointers &result, double from, double to);

2311 28 get_pointers_with_zero_count 0 4 2833 41 MemoryUsage::get_pointers_with_zero_count 0 1 959 1326
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_pointers_with_zero_count
//       Access: Public, Static
//  Description: Fills the indicated MemoryUsagePointers with the set
//               of all currently active pointers (that is, pointers
//               allocated since the last call to freeze(), and not
//               yet freed) that have a zero reference count.
//
//               Generally, an undeleted pointer with a zero reference
//               count means its reference count has never been
//               incremented beyond zero (since once it has been
//               incremented, the only way it can return to zero would
//               free the pointer).  This may include objects that are
//               allocated statically or on the stack, which are never
//               intended to be deleted.  Or, it might represent a
//               programmer or compiler error.
//
//               This function has the side-effect of incrementing
//               each of their reference counts by one, thus
//               preventing them from ever being freed--but since they
//               hadn't been freed anyway, probably no additional harm
//               is done.
////////////////////////////////////////////////////////////////////
90
static inline void MemoryUsage::get_pointers_with_zero_count(MemoryUsagePointers &result);

2312 6 freeze 0 4 2833 19 MemoryUsage::freeze 0 1 960 574
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::freeze
//       Access: Public, Static
//  Description: 'Freezes' all pointers currently stored so that they
//               are no longer reported; only newly allocate pointers
//               from this point on will appear in future information
//               requests.  This makes it easier to differentiate
//               between continuous leaks and one-time memory
//               allocations.
////////////////////////////////////////////////////////////////////
45
static inline void MemoryUsage::freeze(void);

2313 18 show_current_types 0 4 2833 31 MemoryUsage::show_current_types 0 1 961 312
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::show_current_types
//       Access: Public, Static
//  Description: Shows the breakdown of types of all of the
//               active pointers.
////////////////////////////////////////////////////////////////////
57
static inline void MemoryUsage::show_current_types(void);

2314 16 show_trend_types 0 4 2833 29 MemoryUsage::show_trend_types 0 1 962 372
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::show_trend_types
//       Access: Public, Static
//  Description: Shows the breakdown of types of all of the
//               pointers allocated and freed since the last call to
//               freeze().
////////////////////////////////////////////////////////////////////
55
static inline void MemoryUsage::show_trend_types(void);

2315 17 show_current_ages 0 4 2833 30 MemoryUsage::show_current_ages 0 1 963 310
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::show_current_ages
//       Access: Public, Static
//  Description: Shows the breakdown of ages of all of the
//               active pointers.
////////////////////////////////////////////////////////////////////
56
static inline void MemoryUsage::show_current_ages(void);

2316 15 show_trend_ages 0 4 2833 28 MemoryUsage::show_trend_ages 0 1 964 370
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::show_trend_ages
//       Access: Public, Static
//  Description: Shows the breakdown of ages of all of the
//               pointers allocated and freed since the last call to
//               freeze().
////////////////////////////////////////////////////////////////////
54
static inline void MemoryUsage::show_trend_ages(void);

2317 12 ~MemoryUsage 0 4 2833 25 MemoryUsage::~MemoryUsage 0 0 0
32
MemoryUsage::~MemoryUsage(void);

2318 18 get_config_express 0 1 0 18 get_config_express 0 1 1429 142
// Expose the Config variable for Python access.

// Returns the configure object for accessing config variables from a
// scripting language.
34
DConfig &get_config_express(void);

2319 20 upcast_to_MemoryBase 0 12 2835 36 ReferenceCount::upcast_to_MemoryBase 0 1 971 40
upcast from ReferenceCount to MemoryBase
55
MemoryBase *ReferenceCount::upcast_to_MemoryBase(void);

2320 26 downcast_to_ReferenceCount 0 12 2780 38 MemoryBase::downcast_to_ReferenceCount 0 1 972 42
downcast from MemoryBase to ReferenceCount
61
ReferenceCount *MemoryBase::downcast_to_ReferenceCount(void);

2321 15 ~ReferenceCount 0 6 2835 31 ReferenceCount::~ReferenceCount 0 0 232
////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::Destructor
//       Access: Public, Virtual
//  Description: 
////////////////////////////////////////////////////////////////////
53
virtual inline ReferenceCount::~ReferenceCount(void);

2322 13 get_ref_count 0 4 2835 29 ReferenceCount::get_ref_count 0 1 965 265
////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::get_ref_count
//       Access: Published
//  Description: Returns the current reference count.
////////////////////////////////////////////////////////////////////
53
inline int ReferenceCount::get_ref_count(void) const;

2323 3 ref 0 4 2835 19 ReferenceCount::ref 0 1 966 896
////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::ref
//       Access: Published
//  Description: 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.
////////////////////////////////////////////////////////////////////
44
inline void ReferenceCount::ref(void) const;

2324 5 unref 0 6 2835 21 ReferenceCount::unref 0 1 967 1336
////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::unref
//       Access: Published, Virtual
//  Description: 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.
////////////////////////////////////////////////////////////////////
54
virtual inline bool ReferenceCount::unref(void) const;

2325 24 test_ref_count_integrity 0 4 2835 40 ReferenceCount::test_ref_count_integrity 0 1 968 395
////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::test_ref_count_integrity
//       Access: Published
//  Description: Does some easy checks to make sure that the reference
//               count isn't completely bogus.  Returns true if ok,
//               false otherwise.
////////////////////////////////////////////////////////////////////
65
inline bool ReferenceCount::test_ref_count_integrity(void) const;

2326 22 test_ref_count_nonzero 0 4 2835 38 ReferenceCount::test_ref_count_nonzero 0 1 969 402
////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::test_ref_count_nonzero
//       Access: Published
//  Description: Does some easy checks to make sure that the reference
//               count isn't zero, or completely bogus.  Returns true
//               if ok, false otherwise.
////////////////////////////////////////////////////////////////////
63
inline bool ReferenceCount::test_ref_count_nonzero(void) const;

2327 14 get_class_type 0 4 2835 30 ReferenceCount::get_class_type 0 1 970 0
55
static TypeHandle ReferenceCount::get_class_type(void);

2328 10 get_length 0 4 2836 18 Buffer::get_length 0 1 973 695
// Filename: buffer.I
// Created by:  mike (09Jan97)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Buffer::get_length
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
42
inline int Buffer::get_length(void) const;

2329 15 compress_string 0 1 0 15 compress_string 0 1 1430 363
////////////////////////////////////////////////////////////////////
//     Function: compress_string
//       Access: Published
//  Description: Compress the indicated source string at the given
//               compression level (1 through 9).  Returns the
//               compressed string.
////////////////////////////////////////////////////////////////////
96
basic_string< char > compress_string(basic_string< char > const &source, int compression_level);

2330 17 decompress_string 0 1 0 17 decompress_string 0 1 1431 507
////////////////////////////////////////////////////////////////////
//     Function: decompress_string
//       Access: Published
//  Description: Decompresss the previously-compressed string()).  The
//               return value is the decompressed string.
//
//               Note that a decompression error cannot easily be
//               detected, and the return value may simply be a
//               garbage or truncated string.
////////////////////////////////////////////////////////////////////
75
basic_string< char > decompress_string(basic_string< char > const &source);

2331 13 compress_file 0 1 0 13 compress_file 0 1 1432 566
////////////////////////////////////////////////////////////////////
//     Function: compress_file
//       Access: Published
//  Description: Compresss the data from the source file at the given
//               compression level (1 through 9).  The source file is
//               read in its entirety, and the compressed results are
//               written to the dest file, overwriting its contents.
//               The return value is bool on success, or false on
//               failure.
////////////////////////////////////////////////////////////////////
88
bool compress_file(Filename const &source, Filename const &dest, int compression_level);

2332 15 decompress_file 0 1 0 15 decompress_file 0 1 1433 684
////////////////////////////////////////////////////////////////////
//     Function: decompress_file
//       Access: Published
//  Description: Decompresss the data from the source file.  The
//               source file is read in its entirety, and the
//               decompressed results are written to the dest file,
//               overwriting its contents.  The return value is bool
//               on success, or false on failure.
//
//               Note that a decompression error cannot easily be
//               detected, and the output may simply be a garbage
//               or truncated string.
////////////////////////////////////////////////////////////////////
67
bool decompress_file(Filename const &source, Filename const &dest);

2333 15 compress_stream 0 1 0 15 compress_stream 0 1 1434 578
////////////////////////////////////////////////////////////////////
//     Function: compress_stream
//       Access: Published
//  Description: Compresss the data from the source stream at the
//               given compression level (1 through 9).  The source
//               stream is read from its current position to the
//               end-of-file, and the compressed results are written
//               to the dest stream.  The return value is bool on
//               success, or false on failure.
////////////////////////////////////////////////////////////////////
76
bool compress_stream(istream &source, ostream &dest, int compression_level);

2334 17 decompress_stream 0 1 0 17 decompress_stream 0 1 1435 733
////////////////////////////////////////////////////////////////////
//     Function: decompress_stream
//       Access: Published
//  Description: Decompresss the data from the previously-compressed
//               source stream.  The source stream is read from its
//               current position to the end-of-file, and the
//               decompressed results are written to the dest stream.
//               The return value is bool on success, or false on
//               failure.
//
//               Note that a decompression error cannot easily be
//               detected, and the output may simply be a garbage
//               or truncated string.
////////////////////////////////////////////////////////////////////
55
bool decompress_stream(istream &source, ostream &dest);

2335 11 copy_stream 0 1 0 11 copy_stream 0 1 1436 446
////////////////////////////////////////////////////////////////////
//     Function: copy_stream
//       Access: Published
//  Description: Reads the source stream from its current position to
//               the end of the stream, and writes that data to the
//               dest stream at its current position.  Returns true on
//               success, false on failure.
////////////////////////////////////////////////////////////////////
49
bool copy_stream(istream &source, ostream &dest);

2336 9 add_level 0 6 2837 36 PStatCollectorForwardBase::add_level 0 1 974 0
68
virtual void PStatCollectorForwardBase::add_level(double level) = 0;

2337 18 get_node_ref_count 0 4 2838 38 NodeReferenceCount::get_node_ref_count 0 1 975 274
////////////////////////////////////////////////////////////////////
//     Function: NodeReferenceCount::get_node_ref_count
//       Access: Published
//  Description: Returns the current reference count.
////////////////////////////////////////////////////////////////////
62
inline int NodeReferenceCount::get_node_ref_count(void) const;

2338 8 node_ref 0 4 2838 28 NodeReferenceCount::node_ref 0 1 976 338
////////////////////////////////////////////////////////////////////
//     Function: NodeReferenceCount::node_ref
//       Access: Published
//  Description: Explicitly increments the node reference count and
//               the normal reference count simultaneously.
////////////////////////////////////////////////////////////////////
53
inline void NodeReferenceCount::node_ref(void) const;

2339 10 node_unref 0 4 2838 30 NodeReferenceCount::node_unref 0 1 977 462
////////////////////////////////////////////////////////////////////
//     Function: NodeReferenceCount::node_unref
//       Access: Published
//  Description: Explicitly decrements the node reference count and
//               the normal reference count simultaneously.
//
//               The return value is true if the new reference count
//               is nonzero, false if it is zero.
////////////////////////////////////////////////////////////////////
55
inline bool NodeReferenceCount::node_unref(void) const;

2340 24 test_ref_count_integrity 0 4 2838 44 NodeReferenceCount::test_ref_count_integrity 0 1 978 344
////////////////////////////////////////////////////////////////////
//     Function: NodeReferenceCount::test_ref_count_integrity
//       Access: Published
//  Description: Does some easy checks to make sure that the reference
//               count isn't completely bogus.
////////////////////////////////////////////////////////////////////
69
inline bool NodeReferenceCount::test_ref_count_integrity(void) const;

2341 14 get_class_type 0 4 2838 34 NodeReferenceCount::get_class_type 0 1 979 0
59
static TypeHandle NodeReferenceCount::get_class_type(void);

2342 8 Datagram 0 4 2839 18 Datagram::Datagram 0 3 980 981 982 1501
// Filename: datagram.I
// Created by:  drose (06Jun00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Datagram::Constructor
//       Access: Public
//  Description: Constructs an empty datagram.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Datagram::Constructor
//       Access: Public
//  Description: Constructs a datagram from an existing block of data.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Datagram::Constructor
//       Access: Public
//  Description: Constructs a datagram from an existing block of data.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Datagram::Copy Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
206
inline Datagram::Datagram(void);
inline Datagram::Datagram(void const *data, unsigned int size);
inline Datagram::Datagram(basic_string< char > const &data);
inline Datagram::Datagram(Datagram const &copy);

2343 10 operator = 0 4 2839 20 Datagram::operator = 0 1 983 230
////////////////////////////////////////////////////////////////////
//     Function: Datagram::Copy Assignment Operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
55
inline void Datagram::operator =(Datagram const &copy);

2344 5 clear 0 6 2839 15 Datagram::clear 0 1 984 314
////////////////////////////////////////////////////////////////////
//     Function: Datagram::clear
//       Access: Public, Virtual
//  Description: Resets the datagram to empty, in preparation for
//               building up a new datagram.
////////////////////////////////////////////////////////////////////
35
virtual void Datagram::clear(void);

2345 8 dump_hex 0 4 2839 18 Datagram::dump_hex 0 2 985 986 329
////////////////////////////////////////////////////////////////////
//     Function: Datagram::dump_hex
//       Access: Public
//  Description: Writes a representation of the entire datagram
//               contents, as a sequence of hex (and ASCII) values.
////////////////////////////////////////////////////////////////////
71
void Datagram::dump_hex(ostream &out, unsigned int indent = (0)) const;

2346 8 add_bool 0 4 2839 18 Datagram::add_bool 0 1 987 252
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_bool
//       Access: Public
//  Description: Adds a boolean value to the datagram.
////////////////////////////////////////////////////////////////////
43
inline void Datagram::add_bool(bool value);

2347 8 add_int8 0 4 2839 18 Datagram::add_int8 0 1 988 259
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_int8
//       Access: Public
//  Description: Adds a signed 8-bit integer to the datagram.
////////////////////////////////////////////////////////////////////
50
inline void Datagram::add_int8(signed char value);

2348 9 add_uint8 0 4 2839 19 Datagram::add_uint8 0 1 989 263
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_uint8
//       Access: Public
//  Description: Adds an unsigned 8-bit integer to the datagram.
////////////////////////////////////////////////////////////////////
53
inline void Datagram::add_uint8(unsigned char value);

2349 9 add_int16 0 4 2839 19 Datagram::add_int16 0 1 990 311
// The default numeric packing is little-endian.

////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_int16
//       Access: Public
//  Description: Adds a signed 16-bit integer to the datagram.
////////////////////////////////////////////////////////////////////
49
inline void Datagram::add_int16(short int value);

2350 9 add_int32 0 4 2839 19 Datagram::add_int32 0 1 991 311
// The default numeric packing is little-endian.

////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_int32
//       Access: Public
//  Description: Adds a signed 32-bit integer to the datagram.
////////////////////////////////////////////////////////////////////
43
inline void Datagram::add_int32(int value);

2351 9 add_int64 0 4 2839 19 Datagram::add_int64 0 1 992 261
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_int64
//       Access: Public
//  Description: Adds a signed 64-bit integer to the datagram.
////////////////////////////////////////////////////////////////////
47
inline void Datagram::add_int64(__int64 value);

2352 10 add_uint16 0 4 2839 20 Datagram::add_uint16 0 1 993 265
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_uint16
//       Access: Public
//  Description: Adds an unsigned 16-bit integer to the datagram.
////////////////////////////////////////////////////////////////////
59
inline void Datagram::add_uint16(unsigned short int value);

2353 10 add_uint32 0 4 2839 20 Datagram::add_uint32 0 1 994 265
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_uint32
//       Access: Public
//  Description: Adds an unsigned 32-bit integer to the datagram.
////////////////////////////////////////////////////////////////////
53
inline void Datagram::add_uint32(unsigned int value);

2354 10 add_uint64 0 4 2839 20 Datagram::add_uint64 0 1 995 265
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_uint64
//       Access: Public
//  Description: Adds an unsigned 64-bit integer to the datagram.
////////////////////////////////////////////////////////////////////
57
inline void Datagram::add_uint64(unsigned __int64 value);

2355 11 add_float32 0 4 2839 21 Datagram::add_float32 0 1 996 450
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_float32
//       Access: Public
//  Description: Adds a 32-bit single-precision floating-point number
//               to the datagram.  Since this kind of float is not
//               necessarily portable across different architectures,
//               special care is required.
////////////////////////////////////////////////////////////////////
47
inline void Datagram::add_float32(float value);

2356 11 add_float64 0 4 2839 21 Datagram::add_float64 0 1 997 270
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_float64
//       Access: Public
//  Description: Adds a 64-bit floating-point number to the datagram.
////////////////////////////////////////////////////////////////////
48
inline void Datagram::add_float64(double value);

2357 12 add_stdfloat 0 4 2839 22 Datagram::add_stdfloat 0 1 998 327
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_stdfloat
//       Access: Public
//  Description: Adds either a 32-bit or a 64-bit floating-point
//               number, according to set_stdfloat_double().
////////////////////////////////////////////////////////////////////
48
inline void Datagram::add_stdfloat(float value);

2358 12 add_be_int16 0 4 2839 22 Datagram::add_be_int16 0 1 999 361
// These functions pack numbers big-endian, in case that's desired.

////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_int16
//       Access: Public
//  Description: Adds a signed 16-bit big-endian integer to the
//               datagram.
////////////////////////////////////////////////////////////////////
52
inline void Datagram::add_be_int16(short int value);

2359 12 add_be_int32 0 4 2839 22 Datagram::add_be_int32 0 1 1000 361
// These functions pack numbers big-endian, in case that's desired.

////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_int32
//       Access: Public
//  Description: Adds a signed 32-bit big-endian integer to the
//               datagram.
////////////////////////////////////////////////////////////////////
46
inline void Datagram::add_be_int32(int value);

2360 12 add_be_int64 0 4 2839 22 Datagram::add_be_int64 0 1 1001 292
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_int64
//       Access: Public
//  Description: Adds a signed 64-bit big-endian integer to the
//               datagram.
////////////////////////////////////////////////////////////////////
50
inline void Datagram::add_be_int64(__int64 value);

2361 13 add_be_uint16 0 4 2839 23 Datagram::add_be_uint16 0 1 1002 296
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_uint16
//       Access: Public
//  Description: Adds an unsigned 16-bit big-endian integer to the
//               datagram.
////////////////////////////////////////////////////////////////////
62
inline void Datagram::add_be_uint16(unsigned short int value);

2362 13 add_be_uint32 0 4 2839 23 Datagram::add_be_uint32 0 1 1003 296
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_uint32
//       Access: Public
//  Description: Adds an unsigned 32-bit big-endian integer to the
//               datagram.
////////////////////////////////////////////////////////////////////
56
inline void Datagram::add_be_uint32(unsigned int value);

2363 13 add_be_uint64 0 4 2839 23 Datagram::add_be_uint64 0 1 1004 296
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_uint64
//       Access: Public
//  Description: Adds an unsigned 64-bit big-endian integer to the
//               datagram.
////////////////////////////////////////////////////////////////////
60
inline void Datagram::add_be_uint64(unsigned __int64 value);

2364 14 add_be_float32 0 4 2839 24 Datagram::add_be_float32 0 1 1005 318
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_float32
//       Access: Public
//  Description: Adds a 32-bit single-precision big-endian
//               floating-point number to the datagram.
////////////////////////////////////////////////////////////////////
50
inline void Datagram::add_be_float32(float value);

2365 14 add_be_float64 0 4 2839 24 Datagram::add_be_float64 0 1 1006 301
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_float64
//       Access: Public
//  Description: Adds a 64-bit big-endian floating-point number to the
//               datagram.
////////////////////////////////////////////////////////////////////
51
inline void Datagram::add_be_float64(double value);

2366 10 add_string 0 4 2839 20 Datagram::add_string 0 1 1007 329
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_string
//       Access: Public
//  Description: Adds a variable-length string to the datagram.  This
//               actually adds a count followed by n bytes.
////////////////////////////////////////////////////////////////////
66
inline void Datagram::add_string(basic_string< char > const &str);

2367 12 add_string32 0 4 2839 22 Datagram::add_string32 0 1 1008 338
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_string32
//       Access: Public
//  Description: Adds a variable-length string to the datagram, using
//               a 32-bit length field to allow very long strings.
////////////////////////////////////////////////////////////////////
68
inline void Datagram::add_string32(basic_string< char > const &str);

2368 12 add_z_string 0 4 2839 22 Datagram::add_z_string 0 1 1009 311
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_z_string
//       Access: Public
//  Description: Adds a variable-length string to the datagram, as a
//               NULL-terminated string.
////////////////////////////////////////////////////////////////////
61
inline void Datagram::add_z_string(basic_string< char > str);

2369 16 add_fixed_string 0 4 2839 26 Datagram::add_fixed_string 0 1 1010 512
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_fixed_string
//       Access: Public
//  Description: Adds a fixed-length string to the datagram.  If the
//               string given is less than the requested size, this
//               will pad the string out with zeroes; if it is greater
//               than the requested size, this will silently truncate
//               the string.
////////////////////////////////////////////////////////////////////
91
inline void Datagram::add_fixed_string(basic_string< char > const &str, unsigned int size);

2370 11 add_wstring 0 4 2839 21 Datagram::add_wstring 0 1 1011 265
////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_wstring
//       Access: Public
//  Description: Adds a variable-length wstring to the datagram.
////////////////////////////////////////////////////////////////////
63
void Datagram::add_wstring(basic_string< wchar_t > const &str);

2371 9 pad_bytes 0 4 2839 19 Datagram::pad_bytes 0 1 1012 289
////////////////////////////////////////////////////////////////////
//     Function: Datagram::pad_bytes
//       Access: Public
//  Description: Adds the indicated number of zero bytes to the
//               datagram.
////////////////////////////////////////////////////////////////////
44
void Datagram::pad_bytes(unsigned int size);

2372 11 append_data 0 4 2839 21 Datagram::append_data 0 1 1013 580
////////////////////////////////////////////////////////////////////
//     Function: Datagram::append_data
//       Access: Public
//  Description: Appends some more raw data to the end of the
//               datagram.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Datagram::append_data
//       Access: Public
//  Description: Appends some more raw data to the end of the
//               datagram.
////////////////////////////////////////////////////////////////////
133
void Datagram::append_data(void const *data, unsigned int size);
inline void Datagram::append_data(basic_string< char > const &data);

2373 6 assign 0 4 2839 16 Datagram::assign 0 0 284
////////////////////////////////////////////////////////////////////
//     Function: Datagram::assign
//       Access: Public
//  Description: Replaces the datagram's data with the indicated
//               block.
////////////////////////////////////////////////////////////////////
59
void Datagram::assign(void const *data, unsigned int size);

2374 11 get_message 0 4 2839 21 Datagram::get_message 0 1 1014 258
////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_message
//       Access: Public
//  Description: Returns the datagram's data as a string.
////////////////////////////////////////////////////////////////////
62
inline basic_string< char > Datagram::get_message(void) const;

2375 8 get_data 0 4 2839 18 Datagram::get_data 0 1 1015 290
////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_data
//       Access: Public
//  Description: Returns a pointer to the beginning of the datagram's
//               data.
////////////////////////////////////////////////////////////////////
50
inline void const *Datagram::get_data(void) const;

2376 10 get_length 0 4 2839 20 Datagram::get_length 0 1 1016 261
////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_length
//       Access: Public
//  Description: Returns the number of bytes in the datagram.
////////////////////////////////////////////////////////////////////
53
inline unsigned int Datagram::get_length(void) const;

2377 9 set_array 0 4 2839 19 Datagram::set_array 0 1 1017 450
////////////////////////////////////////////////////////////////////
//     Function: Datagram::set_array
//       Access: Public
//  Description: Replaces the data in the Datagram with the data in
//               the indicated PTA_uchar.  This is assignment by
//               reference: subsequent changes to the Datagram will
//               also change the source PTA_uchar.
////////////////////////////////////////////////////////////////////
70
inline void Datagram::set_array(PointerToArray< unsigned char > data);

2378 10 copy_array 0 4 2839 20 Datagram::copy_array 0 1 1018 505
////////////////////////////////////////////////////////////////////
//     Function: Datagram::copy_array
//       Access: Public
//  Description: Replaces the data in the Datagram with a copy of the
//               data in the indicated CPTA_uchar.  Unlike
//               set_array(), a complete copy is made of the data;
//               subsequent changes to the Datagram will *not* change
//               the source CPTA_uchar.
////////////////////////////////////////////////////////////////////
76
inline void Datagram::copy_array(ConstPointerToArray< unsigned char > data);

2379 9 get_array 0 4 2839 19 Datagram::get_array 0 1 1019 292
////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_array
//       Access: Public
//  Description: Returns a const pointer to the actual data in
//               the Datagram.
////////////////////////////////////////////////////////////////////
76
inline ConstPointerToArray< unsigned char > Datagram::get_array(void) const;

2380 12 modify_array 0 4 2839 22 Datagram::modify_array 0 1 1020 300
////////////////////////////////////////////////////////////////////
//     Function: Datagram::modify_array
//       Access: Public
//  Description: Returns a modifiable pointer to the actual data in
//               the Datagram.
////////////////////////////////////////////////////////////////////
68
inline PointerToArray< unsigned char > Datagram::modify_array(void);

2381 19 set_stdfloat_double 0 4 2839 29 Datagram::set_stdfloat_double 0 1 1021 648
////////////////////////////////////////////////////////////////////
//     Function: Datagram::set_stdfloat_double
//       Access: Public
//  Description: Changes the stdfloat_double flag, which defines the
//               operation performed by add_stdfloat() and
//               DatagramIterator::get_stdfloat().  When this is true,
//               add_stdfloat() adds a 64-bit floating-point number;
//               when it is false, it adds a 32-bit floating-point
//               number.  The default is based on the STDFLOAT_DOUBLE
//               compilation flag.
////////////////////////////////////////////////////////////////////
64
inline void Datagram::set_stdfloat_double(bool stdfloat_double);

2382 19 get_stdfloat_double 0 4 2839 29 Datagram::get_stdfloat_double 0 1 1022 304
////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_stdfloat_double
//       Access: Public
//  Description: Returns the stdfloat_double flag.  See
//               set_stdfloat_double().
////////////////////////////////////////////////////////////////////
54
inline bool Datagram::get_stdfloat_double(void) const;

2383 11 operator == 0 4 2839 21 Datagram::operator == 0 1 1023 217
////////////////////////////////////////////////////////////////////
//     Function: Datagram::operator ==
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
63
inline bool Datagram::operator ==(Datagram const &other) const;

2384 11 operator != 0 4 2839 21 Datagram::operator != 0 1 1024 217
////////////////////////////////////////////////////////////////////
//     Function: Datagram::operator !=
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
63
inline bool Datagram::operator !=(Datagram const &other) const;

2385 10 operator < 0 4 2839 20 Datagram::operator < 0 1 1025 216
////////////////////////////////////////////////////////////////////
//     Function: Datagram::operator <
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
62
inline bool Datagram::operator <(Datagram const &other) const;

2386 6 output 0 4 2839 16 Datagram::output 0 1 1026 290
////////////////////////////////////////////////////////////////////
//     Function : Datagram::output
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
////////////////////////////////////////////////////////////////////
42
void Datagram::output(ostream &out) const;

2387 5 write 0 4 2839 15 Datagram::write 0 2 1027 1028 289
////////////////////////////////////////////////////////////////////
//     Function : Datagram::write
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
////////////////////////////////////////////////////////////////////
68
void Datagram::write(ostream &out, unsigned int indent = (0)) const;

2388 14 get_class_type 0 4 2839 24 Datagram::get_class_type 0 1 1029 0
49
static TypeHandle Datagram::get_class_type(void);

2389 18 ~DatagramGenerator 0 6 2840 37 DatagramGenerator::~DatagramGenerator 0 0 326
////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::Destructor
//       Access: Published, Virtual
//  Description: Does nothing since this is class is just
//               the definition of an interface
////////////////////////////////////////////////////////////////////
52
virtual DatagramGenerator::~DatagramGenerator(void);

2390 12 get_datagram 0 6 2840 31 DatagramGenerator::get_datagram 0 1 1030 0
65
virtual bool DatagramGenerator::get_datagram(Datagram &data) = 0;

2391 13 save_datagram 0 6 2840 32 DatagramGenerator::save_datagram 0 1 1031 725
////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::save_datagram
//       Access: Published, Virtual
//  Description: Skips over the next datagram without extracting it,
//               but saves the relevant file information in the
//               SubfileInfo object so that its data may be read
//               later.  For non-file-based datagram generators, this
//               may mean creating a temporary file and copying the
//               contents of the datagram to disk.
//
//               Returns true on success, false on failure or if this
//               method is unimplemented.
////////////////////////////////////////////////////////////////////
65
virtual bool DatagramGenerator::save_datagram(SubfileInfo &info);

2392 6 is_eof 0 6 2840 25 DatagramGenerator::is_eof 0 1 1032 0
49
virtual bool DatagramGenerator::is_eof(void) = 0;

2393 8 is_error 0 6 2840 27 DatagramGenerator::is_error 0 1 1033 0
51
virtual bool DatagramGenerator::is_error(void) = 0;

2394 12 get_filename 0 6 2840 31 DatagramGenerator::get_filename 0 1 1034 419
////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_filename
//       Access: Published, Virtual
//  Description: Returns the filename that provides the source for
//               these datagrams, if any, or empty string if the
//               datagrams do not originate from a file on disk.
////////////////////////////////////////////////////////////////////
62
virtual Filename const &DatagramGenerator::get_filename(void);

2395 13 get_timestamp 0 6 2840 32 DatagramGenerator::get_timestamp 0 1 1035 399
////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_timestamp
//       Access: Published, Virtual
//  Description: Returns the on-disk timestamp of the file that was
//               read, at the time it was opened, if that is
//               available, or 0 if it is not.
////////////////////////////////////////////////////////////////////
66
virtual unsigned int DatagramGenerator::get_timestamp(void) const;

2396 8 get_file 0 6 2840 27 DatagramGenerator::get_file 0 1 1036 412
////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_file
//       Access: Published, Virtual
//  Description: Returns the FileReference that provides the source for
//               these datagrams, if any, or NULL if the datagrams do
//               not originate from a file on disk.
////////////////////////////////////////////////////////////////////
63
virtual FileReference const *DatagramGenerator::get_file(void);

2397 9 get_vfile 0 6 2840 28 DatagramGenerator::get_vfile 0 1 1037 410
////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_vfile
//       Access: Published, Virtual
//  Description: Returns the VirtualFile that provides the source for
//               these datagrams, if any, or NULL if the datagrams do
//               not originate from a VirtualFile.
////////////////////////////////////////////////////////////////////
56
virtual VirtualFile *DatagramGenerator::get_vfile(void);

2398 12 get_file_pos 0 6 2840 31 DatagramGenerator::get_file_pos 0 1 1038 646
////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_file_pos
//       Access: Published, Virtual
//  Description: Returns the current file position within the data
//               stream, if any, or 0 if the file position is not
//               meaningful or cannot be determined.
//
//               For DatagramGenerators that return a meaningful file
//               position, this will be pointing to the first byte
//               following the datagram returned after a call to
//               get_datagram().
////////////////////////////////////////////////////////////////////
50
virtual int DatagramGenerator::get_file_pos(void);

2399 16 DatagramIterator 0 4 2841 34 DatagramIterator::DatagramIterator 0 4 1039 1040 1041 1042 1176
// Filename: datagramIterator.I
// Created by:  drose (08May01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Copy Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
217
inline DatagramIterator::DatagramIterator(void);
inline DatagramIterator::DatagramIterator(Datagram const &datagram, unsigned int offset = (0));
inline DatagramIterator::DatagramIterator(DatagramIterator const &copy);

2400 10 operator = 0 4 2841 28 DatagramIterator::operator = 0 1 1043 238
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Copy Assignment Operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
71
inline void DatagramIterator::operator =(DatagramIterator const &copy);

2401 17 ~DatagramIterator 0 4 2841 35 DatagramIterator::~DatagramIterator 0 0 224
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Destructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
49
inline DatagramIterator::~DatagramIterator(void);

2402 8 get_bool 0 4 2841 26 DatagramIterator::get_bool 0 1 1044 329
// Various ways to get data and increment the iterator...
// Cut-and-paste-orama
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_bool
//       Access: Public
//  Description: Extracts a boolean value.
////////////////////////////////////////////////////////////////////
45
inline bool DatagramIterator::get_bool(void);

2403 8 get_int8 0 4 2841 26 DatagramIterator::get_int8 0 1 1045 255
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_int8
//       Access: Public
//  Description: Extracts a signed 8-bit integer.
////////////////////////////////////////////////////////////////////
52
inline signed char DatagramIterator::get_int8(void);

2404 9 get_uint8 0 4 2841 27 DatagramIterator::get_uint8 0 1 1046 259
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_uint8
//       Access: Public
//  Description: Extracts an unsigned 8-bit integer.
////////////////////////////////////////////////////////////////////
55
inline unsigned char DatagramIterator::get_uint8(void);

2405 9 get_int16 0 4 2841 27 DatagramIterator::get_int16 0 1 1047 257
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_int16
//       Access: Public
//  Description: Extracts a signed 16-bit integer.
////////////////////////////////////////////////////////////////////
51
inline short int DatagramIterator::get_int16(void);

2406 9 get_int32 0 4 2841 27 DatagramIterator::get_int32 0 1 1048 257
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_int32
//       Access: Public
//  Description: Extracts a signed 32-bit integer.
////////////////////////////////////////////////////////////////////
45
inline int DatagramIterator::get_int32(void);

2407 9 get_int64 0 4 2841 27 DatagramIterator::get_int64 0 1 1049 257
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_int64
//       Access: Public
//  Description: Extracts a signed 64-bit integer.
////////////////////////////////////////////////////////////////////
49
inline __int64 DatagramIterator::get_int64(void);

2408 10 get_uint16 0 4 2841 28 DatagramIterator::get_uint16 0 1 1050 261
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_uint16
//       Access: Public
//  Description: Extracts an unsigned 16-bit integer.
////////////////////////////////////////////////////////////////////
61
inline unsigned short int DatagramIterator::get_uint16(void);

2409 10 get_uint32 0 4 2841 28 DatagramIterator::get_uint32 0 1 1051 261
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_uint32
//       Access: Public
//  Description: Extracts an unsigned 32-bit integer.
////////////////////////////////////////////////////////////////////
55
inline unsigned int DatagramIterator::get_uint32(void);

2410 10 get_uint64 0 4 2841 28 DatagramIterator::get_uint64 0 1 1052 261
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_uint64
//       Access: Public
//  Description: Extracts an unsigned 64-bit integer.
////////////////////////////////////////////////////////////////////
59
inline unsigned __int64 DatagramIterator::get_uint64(void);

2411 11 get_float32 0 4 2841 29 DatagramIterator::get_float32 0 1 1053 300
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_float32
//       Access: Public
//  Description: Extracts a 32-bit single-precision floating-point
//               number.
////////////////////////////////////////////////////////////////////
49
inline float DatagramIterator::get_float32(void);

2412 11 get_float64 0 4 2841 29 DatagramIterator::get_float64 0 1 1054 266
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_float64
//       Access: Public
//  Description: Extracts a 64-bit floating-point number.
////////////////////////////////////////////////////////////////////
50
inline double DatagramIterator::get_float64(void);

2413 12 get_stdfloat 0 4 2841 30 DatagramIterator::get_stdfloat 0 1 1055 349
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_stdfloat
//       Access: Public
//  Description: Extracts either a 32-bit or a 64-bit floating-point
//               number, according to Datagram::set_stdfloat_double().
////////////////////////////////////////////////////////////////////
50
inline float DatagramIterator::get_stdfloat(void);

2414 12 get_be_int16 0 4 2841 30 DatagramIterator::get_be_int16 0 1 1056 271
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_int16
//       Access: Public
//  Description: Extracts a signed 16-bit big-endian integer.
////////////////////////////////////////////////////////////////////
54
inline short int DatagramIterator::get_be_int16(void);

2415 12 get_be_int32 0 4 2841 30 DatagramIterator::get_be_int32 0 1 1057 271
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_int32
//       Access: Public
//  Description: Extracts a signed 32-bit big-endian integer.
////////////////////////////////////////////////////////////////////
48
inline int DatagramIterator::get_be_int32(void);

2416 12 get_be_int64 0 4 2841 30 DatagramIterator::get_be_int64 0 1 1058 271
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_int64
//       Access: Public
//  Description: Extracts a signed 64-bit big-endian integer.
////////////////////////////////////////////////////////////////////
52
inline __int64 DatagramIterator::get_be_int64(void);

2417 13 get_be_uint16 0 4 2841 31 DatagramIterator::get_be_uint16 0 1 1059 275
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_uint16
//       Access: Public
//  Description: Extracts an unsigned 16-bit big-endian integer.
////////////////////////////////////////////////////////////////////
64
inline unsigned short int DatagramIterator::get_be_uint16(void);

2418 13 get_be_uint32 0 4 2841 31 DatagramIterator::get_be_uint32 0 1 1060 275
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_uint32
//       Access: Public
//  Description: Extracts an unsigned 32-bit big-endian integer.
////////////////////////////////////////////////////////////////////
58
inline unsigned int DatagramIterator::get_be_uint32(void);

2419 13 get_be_uint64 0 4 2841 31 DatagramIterator::get_be_uint64 0 1 1061 275
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_uint64
//       Access: Public
//  Description: Extracts an unsigned 64-bit big-endian integer.
////////////////////////////////////////////////////////////////////
62
inline unsigned __int64 DatagramIterator::get_be_uint64(void);

2420 14 get_be_float32 0 4 2841 32 DatagramIterator::get_be_float32 0 1 1062 314
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_float32
//       Access: Public
//  Description: Extracts a 32-bit big-endian single-precision
//               floating-point number.
////////////////////////////////////////////////////////////////////
52
inline float DatagramIterator::get_be_float32(void);

2421 14 get_be_float64 0 4 2841 32 DatagramIterator::get_be_float64 0 1 1063 280
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_float64
//       Access: Public
//  Description: Extracts a 64-bit big-endian floating-point number.
////////////////////////////////////////////////////////////////////
53
inline double DatagramIterator::get_be_float64(void);

2422 10 get_string 0 4 2841 28 DatagramIterator::get_string 0 1 1064 259
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_string
//       Access: Public
//  Description: Extracts a variable-length string.
////////////////////////////////////////////////////////////////////
56
basic_string< char > DatagramIterator::get_string(void);

2423 12 get_string32 0 4 2841 30 DatagramIterator::get_string32 0 1 1065 305
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_string32
//       Access: Public
//  Description: Extracts a variable-length string with a 32-bit
//               length field.
////////////////////////////////////////////////////////////////////
58
basic_string< char > DatagramIterator::get_string32(void);

2424 12 get_z_string 0 4 2841 30 DatagramIterator::get_z_string 0 1 1066 307
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_z_string
//       Access: Public
//  Description: Extracts a variable-length string, as a
//               NULL-terminated string.
////////////////////////////////////////////////////////////////////
58
basic_string< char > DatagramIterator::get_z_string(void);

2425 16 get_fixed_string 0 4 2841 34 DatagramIterator::get_fixed_string 0 1 1067 379
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_fixed_string
//       Access: Public
//  Description: Extracts a fixed-length string.  However, if a zero
//               byte occurs within the string, it marks the end of
//               the string.
////////////////////////////////////////////////////////////////////
75
basic_string< char > DatagramIterator::get_fixed_string(unsigned int size);

2426 11 get_wstring 0 4 2841 29 DatagramIterator::get_wstring 0 1 1068 307
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_wstring
//       Access: Public
//  Description: Extracts a variable-length wstring (with a 32-bit
//               length field).
////////////////////////////////////////////////////////////////////
60
basic_string< wchar_t > DatagramIterator::get_wstring(void);

2427 10 skip_bytes 0 4 2841 28 DatagramIterator::skip_bytes 0 1 1069 299
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::skip_bytes
//       Access: Public
//  Description: Skips over the indicated number of bytes in the
//               datagram.
////////////////////////////////////////////////////////////////////
60
inline void DatagramIterator::skip_bytes(unsigned int size);

2428 13 extract_bytes 0 4 2841 31 DatagramIterator::extract_bytes 0 1 1070 856
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::extract_bytes
//       Access: Public
//  Description: Extracts the indicated number of bytes in the
//               datagram and returns them as a string.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::extract_bytes
//       Access: Published
//  Description: Extracts the indicated number of bytes in the
//               datagram into the given character buffer.  Assumes
//               that the buffer is big enough to hold the requested
//               number of bytes.  Returns the number of bytes
//               that were successfully written.
////////////////////////////////////////////////////////////////////
158
basic_string< char > DatagramIterator::extract_bytes(unsigned int size);
unsigned int DatagramIterator::extract_bytes(unsigned char *into, unsigned int size);

2429 19 get_remaining_bytes 0 4 2841 37 DatagramIterator::get_remaining_bytes 0 1 1071 352
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_remaining_bytes
//       Access: Public
//  Description: Returns the remaining bytes in the datagram as a
//               string, but does not extract them from the iterator.
////////////////////////////////////////////////////////////////////
78
inline basic_string< char > DatagramIterator::get_remaining_bytes(void) const;

2430 18 get_remaining_size 0 4 2841 36 DatagramIterator::get_remaining_size 0 1 1072 271
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_remaining_size
//       Access: Public
//  Description: Return the bytes left in the datagram.
////////////////////////////////////////////////////////////////////
60
inline int DatagramIterator::get_remaining_size(void) const;

2431 12 get_datagram 0 4 2841 30 DatagramIterator::get_datagram 0 1 1073 264
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_datagram
//       Access: Public
//  Description: Return the datagram of this iterator.
////////////////////////////////////////////////////////////////////
66
inline Datagram const &DatagramIterator::get_datagram(void) const;

2432 17 get_current_index 0 4 2841 35 DatagramIterator::get_current_index 0 1 1074 335
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_current_index
//       Access: Public
//  Description: Returns the current position within the datagram of the
//               next piece of data to extract.
////////////////////////////////////////////////////////////////////
68
inline unsigned int DatagramIterator::get_current_index(void) const;

2433 6 output 0 4 2841 24 DatagramIterator::output 0 1 1075 280
////////////////////////////////////////////////////////////////////
//     Function : output
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
////////////////////////////////////////////////////////////////////
50
void DatagramIterator::output(ostream &out) const;

2434 5 write 0 4 2841 23 DatagramIterator::write 0 2 1076 1077 279
////////////////////////////////////////////////////////////////////
//     Function : write
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
////////////////////////////////////////////////////////////////////
76
void DatagramIterator::write(ostream &out, unsigned int indent = (0)) const;

2435 14 get_class_type 0 4 2841 32 DatagramIterator::get_class_type 0 1 1078 0
57
static TypeHandle DatagramIterator::get_class_type(void);

2436 13 ~DatagramSink 0 6 2842 27 DatagramSink::~DatagramSink 0 0 318
////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::Destructor
//       Access: Public, Virtual
//  Description: Does nothing since this is class is just
//               the definition of an interface
////////////////////////////////////////////////////////////////////
42
virtual DatagramSink::~DatagramSink(void);

2437 12 put_datagram 0 6 2842 26 DatagramSink::put_datagram 0 1 1079 0
66
virtual bool DatagramSink::put_datagram(Datagram const &data) = 0;

2438 13 copy_datagram 0 6 2842 27 DatagramSink::copy_datagram 0 2 1080 1081 1354
////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::copy_datagram
//       Access: Published, Virtual
//  Description: Copies the file data from the entire indicated
//               file (via the vfs) as the next datagram.  This is
//               intended to support potentially very large datagrams.
//
//               Returns true on success, false on failure or if this
//               method is unimplemented.  On true, fills "result"
//               with the information that references the copied file,
//               if possible.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::copy_datagram
//       Access: Published, Virtual
//  Description: Copies the file data from the range of the indicated
//               file (outside of the vfs) as the next datagram.  This
//               is intended to support potentially very large
//               datagrams.
//
//               Returns true on success, false on failure or if this
//               method is unimplemented.  On true, fills "result"
//               with the information that references the copied file,
//               if possible.
////////////////////////////////////////////////////////////////////
178
virtual bool DatagramSink::copy_datagram(SubfileInfo &result, Filename const &filename);
virtual bool DatagramSink::copy_datagram(SubfileInfo &result, SubfileInfo const &source);

2439 8 is_error 0 6 2842 22 DatagramSink::is_error 0 1 1082 0
46
virtual bool DatagramSink::is_error(void) = 0;

2440 5 flush 0 6 2842 19 DatagramSink::flush 0 1 1083 0
43
virtual void DatagramSink::flush(void) = 0;

2441 12 get_filename 0 6 2842 26 DatagramSink::get_filename 0 1 1084 414
////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::get_filename
//       Access: Published, Virtual
//  Description: Returns the filename that provides the target for
//               these datagrams, if any, or empty string if the
//               datagrams do not get written to a file on disk.
////////////////////////////////////////////////////////////////////
57
virtual Filename const &DatagramSink::get_filename(void);

2442 8 get_file 0 6 2842 22 DatagramSink::get_file 0 1 1085 403
////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::get_file
//       Access: Published, Virtual
//  Description: Returns the FileReference that provides the target for
//               these datagrams, if any, or NULL if the datagrams do
//               not written to a file on disk.
////////////////////////////////////////////////////////////////////
58
virtual FileReference const *DatagramSink::get_file(void);

2443 12 get_file_pos 0 6 2842 26 DatagramSink::get_file_pos 0 1 1086 636
////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::get_file_pos
//       Access: Published, Virtual
//  Description: Returns the current file position within the data
//               stream, if any, or 0 if the file position is not
//               meaningful or cannot be determined.
//
//               For DatagramSinks that return a meaningful file
//               position, this will be pointing to the first byte
//               following the datagram returned after a call to
//               put_datagram().
////////////////////////////////////////////////////////////////////
45
virtual int DatagramSink::get_file_pos(void);

2444 14 encrypt_string 0 1 0 14 encrypt_string 0 4 1437 1438 1439 1440 394
////////////////////////////////////////////////////////////////////
//     Function: encrypt_string
//       Access: Published
//  Description: Encrypts the indicated source string using the given
//               password, and the algorithm specified by
//               encryption-algorithm.  Returns the encrypted string.
////////////////////////////////////////////////////////////////////
215
basic_string< char > encrypt_string(basic_string< char > const &source, basic_string< char > const &password, basic_string< char > const &algorithm = ((string())), int key_length = (-1), int iteration_count = (-1));

2445 14 decrypt_string 0 1 0 14 decrypt_string 0 1 1441 625
////////////////////////////////////////////////////////////////////
//     Function: decrypt_string
//       Access: Published
//  Description: Decrypts the previously-encrypted string using the
//               given password (which must be the same password
//               passed to encrypt()).  The return value is the
//               decrypted string.
//
//               Note that a decryption error, including an incorrect
//               password, cannot easily be detected, and the return
//               value may simply be a garbage string.
////////////////////////////////////////////////////////////////////
110
basic_string< char > decrypt_string(basic_string< char > const &source, basic_string< char > const &password);

2446 12 encrypt_file 0 1 0 12 encrypt_file 0 4 1442 1443 1444 1445 527
////////////////////////////////////////////////////////////////////
//     Function: encrypt_file
//       Access: Published
//  Description: Encrypts the data from the source file using the
//               given password.  The source file is read in its
//               entirety, and the encrypted results are written to
//               the dest file, overwriting its contents.  The return
//               value is bool on success, or false on failure.
////////////////////////////////////////////////////////////////////
207
bool encrypt_file(Filename const &source, Filename const &dest, basic_string< char > const &password, basic_string< char > const &algorithm = ((string())), int key_length = (-1), int iteration_count = (-1));

2447 12 decrypt_file 0 1 0 12 decrypt_file 0 1 1446 792
////////////////////////////////////////////////////////////////////
//     Function: decrypt_file
//       Access: Published
//  Description: Decrypts the data from the source file using the
//               given password (which must match the same password
//               passed to encrypt()).  The source file is read in its
//               entirety, and the decrypted results are written to
//               the dest file, overwriting its contents.  The return
//               value is bool on success, or false on failure.
//
//               Note that a decryption error, including an incorrect
//               password, cannot easily be detected, and the output
//               may simply be a garbage string.
////////////////////////////////////////////////////////////////////
102
bool decrypt_file(Filename const &source, Filename const &dest, basic_string< char > const &password);

2448 14 encrypt_stream 0 1 0 14 encrypt_stream 0 4 1447 1448 1449 1450 554
////////////////////////////////////////////////////////////////////
//     Function: encrypt_stream
//       Access: Published
//  Description: Encrypts the data from the source stream using the
//               given password.  The source stream is read from its
//               current position to the end-of-file, and the
//               encrypted results are written to the dest stream.
//               The return value is bool on success, or false on
//               failure.
////////////////////////////////////////////////////////////////////
195
bool encrypt_stream(istream &source, ostream &dest, basic_string< char > const &password, basic_string< char > const &algorithm = ((string())), int key_length = (-1), int iteration_count = (-1));

2449 14 decrypt_stream 0 1 0 14 decrypt_stream 0 1 1451 838
////////////////////////////////////////////////////////////////////
//     Function: decrypt_stream
//       Access: Published
//  Description: Decrypts the data from the previously-encrypted
//               source stream using the given password (which must be
//               the same password passed to encrypt()).  The source
//               stream is read from its current position to the
//               end-of-file, and the decrypted results are written to
//               the dest stream.  The return value is bool on
//               success, or false on failure.
//
//               Note that a decryption error, including an incorrect
//               password, cannot easily be detected, and the output
//               may simply be a garbage string.
////////////////////////////////////////////////////////////////////
90
bool decrypt_stream(istream &source, ostream &dest, basic_string< char > const &password);

2450 13 error_to_text 0 1 0 13 error_to_text 0 1 1452 185
////////////////////////////////////////////////////////////////////
//     Function: error_to_text
//  Description:
////////////////////////////////////////////////////////////////////
54
basic_string< char > error_to_text(ErrorUtilCode err);

2451 15 get_write_error 0 1 0 15 get_write_error 0 1 1453 187
////////////////////////////////////////////////////////////////////
//     Function: get_write_error
//  Description:
////////////////////////////////////////////////////////////////////
26
int get_write_error(void);

2452 19 handle_socket_error 0 1 0 19 handle_socket_error 0 1 1454 191
////////////////////////////////////////////////////////////////////
//     Function: handle_socket_error
//  Description:
////////////////////////////////////////////////////////////////////
47
basic_string< char > handle_socket_error(void);

2453 17 get_network_error 0 1 0 17 get_network_error 0 1 1455 189
////////////////////////////////////////////////////////////////////
//     Function: get_network_error
//  Description:
////////////////////////////////////////////////////////////////////
28
int get_network_error(void);

2454 21 upcast_to_TypedObject 0 12 2844 42 TypedReferenceCount::upcast_to_TypedObject 0 1 1088 46
upcast from TypedReferenceCount to TypedObject
62
TypedObject *TypedReferenceCount::upcast_to_TypedObject(void);

2455 31 downcast_to_TypedReferenceCount 0 12 2829 44 TypedObject::downcast_to_TypedReferenceCount 0 1 1089 48
downcast from TypedObject to TypedReferenceCount
72
TypedReferenceCount *TypedObject::downcast_to_TypedReferenceCount(void);

2456 24 upcast_to_ReferenceCount 0 12 2844 45 TypedReferenceCount::upcast_to_ReferenceCount 0 1 1090 49
upcast from TypedReferenceCount to ReferenceCount
68
ReferenceCount *TypedReferenceCount::upcast_to_ReferenceCount(void);

2457 31 downcast_to_TypedReferenceCount 0 12 2835 47 ReferenceCount::downcast_to_TypedReferenceCount 0 1 1091 51
downcast from ReferenceCount to TypedReferenceCount
75
TypedReferenceCount *ReferenceCount::downcast_to_TypedReferenceCount(void);

2458 14 get_class_type 0 4 2844 35 TypedReferenceCount::get_class_type 0 1 1087 0
60
static TypeHandle TypedReferenceCount::get_class_type(void);

2459 20 ~TypedReferenceCount 0 4 2844 41 TypedReferenceCount::~TypedReferenceCount 0 0 0
48
TypedReferenceCount::~TypedReferenceCount(void);

2460 13 FileReference 0 4 2845 28 FileReference::FileReference 0 1 1092 714
// Filename: fileReference.I
// Created by:  drose (23Jun11)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: FileReference::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
62
inline FileReference::FileReference(Filename const &filename);

2461 12 get_filename 0 4 2845 27 FileReference::get_filename 0 1 1093 265
////////////////////////////////////////////////////////////////////
//     Function: FileReference::get_filename
//       Access: Published
//  Description: Returns the filename of the reference.
////////////////////////////////////////////////////////////////////
63
inline Filename const &FileReference::get_filename(void) const;

2462 14 get_class_type 0 4 2845 29 FileReference::get_class_type 0 1 1094 0
54
static TypeHandle FileReference::get_class_type(void);

2463 14 ~FileReference 0 4 2845 29 FileReference::~FileReference 0 0 0
36
FileReference::~FileReference(void);

2464 7 Ramfile 0 4 2846 16 Ramfile::Ramfile 0 1 1095 701
// Filename: ramfile.I
// Created by:  mike (09Jan97)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
30
inline Ramfile::Ramfile(void);

2465 4 seek 0 4 2846 13 Ramfile::seek 0 1 1096 363
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::seek
//       Access: Published
//  Description: Moves the data pointer to the indicated byte
//               position.  It is not an error to move the pointer
//               past the end of data.
////////////////////////////////////////////////////////////////////
44
inline void Ramfile::seek(unsigned int pos);

2466 4 tell 0 4 2846 13 Ramfile::tell 0 1 1097 322
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::tell
//       Access: Published
//  Description: Returns the current data pointer position as a byte
//               offset from the beginning of the stream.
////////////////////////////////////////////////////////////////////
46
inline unsigned int Ramfile::tell(void) const;

2467 4 read 0 4 2846 13 Ramfile::read 0 1 1098 594
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::read
//       Access: Published
//  Description: Extracts and returns the indicated number of
//               characters from the current data pointer, and
//               advances the data pointer.  If the data pointer
//               exceeds the end of the buffer, returns empty string.
//
//               The interface here is intentionally designed to be
//               similar to that for Python's file.read() function.
////////////////////////////////////////////////////////////////////
56
basic_string< char > Ramfile::read(unsigned int length);

2468 8 readline 0 4 2846 17 Ramfile::readline 0 1 1099 599
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::readline
//       Access: Published
//  Description: Assumes the stream represents a text file, and
//               extracts one line up to and including the trailing
//               newline character.  Returns empty string when the end
//               of file is reached.
//
//               The interface here is intentionally designed to be
//               similar to that for Python's file.readline()
//               function.
////////////////////////////////////////////////////////////////////
45
basic_string< char > Ramfile::readline(void);

2469 9 readlines 0 4 2846 18 Ramfile::readlines 0 1 1100 0
35
PyObject *Ramfile::readlines(void);

2470 8 get_data 0 4 2846 17 Ramfile::get_data 0 1 1101 321
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::get_data
//       Access: Published
//  Description: Returns the entire buffer contents as a string,
//               regardless of the current data pointer.
////////////////////////////////////////////////////////////////////
65
inline basic_string< char > const &Ramfile::get_data(void) const;

2471 13 get_data_size 0 4 2846 22 Ramfile::get_data_size 0 1 1102 269
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::get_data_size
//       Access: Published
//  Description: Returns the size of the entire buffer contents.
////////////////////////////////////////////////////////////////////
55
inline unsigned int Ramfile::get_data_size(void) const;

2472 5 clear 0 4 2846 14 Ramfile::clear 0 1 1103 250
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::clear
//       Access: Published
//  Description: Empties the current buffer contents.
////////////////////////////////////////////////////////////////////
33
inline void Ramfile::clear(void);

2473 8 ~Ramfile 0 4 2846 17 Ramfile::~Ramfile 0 0 0
24
Ramfile::~Ramfile(void);

2474 7 HashVal 0 4 2847 16 HashVal::HashVal 0 2 1104 1105 928
// Filename: hashVal.I
// Created by:  drose (14Nov00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: HashVal::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: HashVal::Copy Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
76
inline HashVal::HashVal(void);
inline HashVal::HashVal(HashVal const &copy);

2475 10 operator = 0 4 2847 19 HashVal::operator = 0 1 1106 232
////////////////////////////////////////////////////////////////////
//     Function: HashVal::Copy Assignment Operator
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
53
inline void HashVal::operator =(HashVal const &copy);

2476 11 operator == 0 4 2847 20 HashVal::operator == 0 1 1107 219
////////////////////////////////////////////////////////////////////
//     Function: HashVal::operator ==
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
61
inline bool HashVal::operator ==(HashVal const &other) const;

2477 11 operator != 0 4 2847 20 HashVal::operator != 0 1 1108 219
////////////////////////////////////////////////////////////////////
//     Function: HashVal::operator !=
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
61
inline bool HashVal::operator !=(HashVal const &other) const;

2478 10 operator < 0 4 2847 19 HashVal::operator < 0 1 1109 218
////////////////////////////////////////////////////////////////////
//     Function: HashVal::operator <
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
60
inline bool HashVal::operator <(HashVal const &other) const;

2479 10 compare_to 0 4 2847 19 HashVal::compare_to 0 1 1110 218
////////////////////////////////////////////////////////////////////
//     Function: HashVal::compare_to
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
59
inline int HashVal::compare_to(HashVal const &other) const;

2480 10 merge_with 0 4 2847 19 HashVal::merge_with 0 1 1111 311
////////////////////////////////////////////////////////////////////
//     Function: HashVal::merge_with
//       Access: Published
//  Description: Generates a new HashVal representing the xor of this
//               one and the other one.
////////////////////////////////////////////////////////////////////
54
inline void HashVal::merge_with(HashVal const &other);

2481 10 output_dec 0 4 2847 19 HashVal::output_dec 0 1 1112 290
////////////////////////////////////////////////////////////////////
//     Function: HashVal::output_dec
//       Access: Published
//  Description: Outputs the HashVal as four unsigned decimal
//               integers.
////////////////////////////////////////////////////////////////////
52
inline void HashVal::output_dec(ostream &out) const;

2482 9 input_dec 0 4 2847 18 HashVal::input_dec 0 1 1113 267
////////////////////////////////////////////////////////////////////
//     Function: HashVal::input
//       Access: Published
//  Description: Inputs the HashVal as four unsigned decimal integers.
////////////////////////////////////////////////////////////////////
44
inline void HashVal::input_dec(istream &in);

2483 10 output_hex 0 4 2847 19 HashVal::output_hex 0 1 1114 288
// HAVE_OPENSSL
////////////////////////////////////////////////////////////////////
//     Function: HashVal::output_hex
//       Access: Published
//  Description: Outputs the HashVal as a 32-digit hexadecimal number.
////////////////////////////////////////////////////////////////////
45
void HashVal::output_hex(ostream &out) const;

2484 9 input_hex 0 4 2847 18 HashVal::input_hex 0 1 1115 270
////////////////////////////////////////////////////////////////////
//     Function: HashVal::input_hex
//       Access: Published
//  Description: Inputs the HashVal as a 32-digit hexadecimal number.
////////////////////////////////////////////////////////////////////
37
void HashVal::input_hex(istream &in);

2485 13 output_binary 0 4 2847 22 HashVal::output_binary 0 1 1116 370
////////////////////////////////////////////////////////////////////
//     Function: HashVal::output_binary
//       Access: Published
//  Description: Outputs the HashVal as a binary stream of bytes in
//               order.  This is not the same order generated by
//               write_stream().
////////////////////////////////////////////////////////////////////
48
void HashVal::output_binary(ostream &out) const;

2486 12 input_binary 0 4 2847 21 HashVal::input_binary 0 1 1117 366
////////////////////////////////////////////////////////////////////
//     Function: HashVal::input_binary
//       Access: Published
//  Description: Inputs the HashVal as a binary stream of bytes in
//               order.  This is not the same order expected by
//               read_stream().
////////////////////////////////////////////////////////////////////
40
void HashVal::input_binary(istream &in);

2487 6 output 0 4 2847 15 HashVal::output 0 1 1118 215
////////////////////////////////////////////////////////////////////
//     Function: HashVal::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
48
inline void HashVal::output(ostream &out) const;

2488 6 as_dec 0 4 2847 15 HashVal::as_dec 0 1 1119 290
////////////////////////////////////////////////////////////////////
//     Function: HashVal::as_dec
//       Access: Published
//  Description: Returns the HashVal as a string with four decimal
//               numbers.
////////////////////////////////////////////////////////////////////
49
basic_string< char > HashVal::as_dec(void) const;

2489 12 set_from_dec 0 4 2847 21 HashVal::set_from_dec 0 1 1120 336
////////////////////////////////////////////////////////////////////
//     Function: HashVal::set_from_dec
//       Access: Published
//  Description: Sets the HashVal from a string with four decimal
//               numbers.  Returns true if valid, false otherwise.
////////////////////////////////////////////////////////////////////
61
bool HashVal::set_from_dec(basic_string< char > const &text);

2490 6 as_hex 0 4 2847 15 HashVal::as_hex 0 1 1121 267
////////////////////////////////////////////////////////////////////
//     Function: HashVal::as_hex
//       Access: Published
//  Description: Returns the HashVal as a 32-byte hexadecimal string.
////////////////////////////////////////////////////////////////////
49
basic_string< char > HashVal::as_hex(void) const;

2491 12 set_from_hex 0 4 2847 21 HashVal::set_from_hex 0 1 1122 334
////////////////////////////////////////////////////////////////////
//     Function: HashVal::set_from_hex
//       Access: Published
//  Description: Sets the HashVal from a 32-byte hexademical string.
//               Returns true if successful, false otherwise.
////////////////////////////////////////////////////////////////////
61
bool HashVal::set_from_hex(basic_string< char > const &text);

2492 6 as_bin 0 4 2847 15 HashVal::as_bin 0 1 1123 262
////////////////////////////////////////////////////////////////////
//     Function: HashVal::as_bin
//       Access: Published
//  Description: Returns the HashVal as a 16-byte binary string.
////////////////////////////////////////////////////////////////////
49
basic_string< char > HashVal::as_bin(void) const;

2493 12 set_from_bin 0 4 2847 21 HashVal::set_from_bin 0 1 1124 329
////////////////////////////////////////////////////////////////////
//     Function: HashVal::set_from_bin
//       Access: Published
//  Description: Sets the HashVal from a 16-byte binary string.
//               Returns true if successful, false otherwise.
////////////////////////////////////////////////////////////////////
61
bool HashVal::set_from_bin(basic_string< char > const &text);

2494 14 write_datagram 0 4 2847 23 HashVal::write_datagram 0 1 1125 223
////////////////////////////////////////////////////////////////////
//     Function: HashVal::write_datagram
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
65
inline void HashVal::write_datagram(Datagram &destination) const;

2495 13 read_datagram 0 4 2847 22 HashVal::read_datagram 0 1 1126 222
////////////////////////////////////////////////////////////////////
//     Function: HashVal::read_datagram
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
61
inline void HashVal::read_datagram(DatagramIterator &source);

2496 12 write_stream 0 4 2847 21 HashVal::write_stream 0 1 1127 221
////////////////////////////////////////////////////////////////////
//     Function: HashVal::write_stream
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
67
inline void HashVal::write_stream(StreamWriter &destination) const;

2497 11 read_stream 0 4 2847 20 HashVal::read_stream 0 1 1128 220
////////////////////////////////////////////////////////////////////
//     Function: HashVal::read_stream
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
55
inline void HashVal::read_stream(StreamReader &source);

2498 9 hash_file 0 4 2847 18 HashVal::hash_file 0 1 1129 500
////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_file
//       Access: Published
//  Description: Generates the hash value from the indicated file.
//               Returns true on success, false if the file cannot be
//               read.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
////////////////////////////////////////////////////////////////////
50
bool HashVal::hash_file(Filename const &filename);

2499 11 hash_stream 0 4 2847 20 HashVal::hash_stream 0 1 1130 502
////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_stream
//       Access: Published
//  Description: Generates the hash value from the indicated file.
//               Returns true on success, false if the file cannot be
//               read.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
////////////////////////////////////////////////////////////////////
43
bool HashVal::hash_stream(istream &stream);

2500 12 hash_ramfile 0 4 2847 21 HashVal::hash_ramfile 0 1 1131 433
////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_ramfile
//       Access: Published
//  Description: Generates the hash value by hashing the indicated
//               data.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
////////////////////////////////////////////////////////////////////
58
inline void HashVal::hash_ramfile(Ramfile const &ramfile);

2501 11 hash_string 0 4 2847 20 HashVal::hash_string 0 1 1132 432
////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_string
//       Access: Published
//  Description: Generates the hash value by hashing the indicated
//               data.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
////////////////////////////////////////////////////////////////////
67
inline void HashVal::hash_string(basic_string< char > const &data);

2502 11 hash_buffer 0 4 2847 20 HashVal::hash_buffer 0 1 1133 432
////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_buffer
//       Access: Published
//  Description: Generates the hash value by hashing the indicated
//               data.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
////////////////////////////////////////////////////////////////////
58
void HashVal::hash_buffer(char const *buffer, int length);

2503 8 ~HashVal 0 4 2847 17 HashVal::~HashVal 0 0 0
24
HashVal::~HashVal(void);

2504 19 MemoryUsagePointers 0 4 2848 40 MemoryUsagePointers::MemoryUsagePointers 0 1 1134 231
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
47
MemoryUsagePointers::MemoryUsagePointers(void);

2505 20 ~MemoryUsagePointers 0 4 2848 41 MemoryUsagePointers::~MemoryUsagePointers 0 0 230
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::Destructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
48
MemoryUsagePointers::~MemoryUsagePointers(void);

2506 16 get_num_pointers 0 4 2848 37 MemoryUsagePointers::get_num_pointers 0 1 1135 279
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_num_pointers
//       Access: Published
//  Description: Returns the number of pointers in the set.
////////////////////////////////////////////////////////////////////
54
int MemoryUsagePointers::get_num_pointers(void) const;

2507 11 get_pointer 0 4 2848 32 MemoryUsagePointers::get_pointer 0 1 1136 267
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_pointer
//       Access: Published
//  Description: Returns the nth pointer of the set.
////////////////////////////////////////////////////////////////////
62
ReferenceCount *MemoryUsagePointers::get_pointer(int n) const;

2508 17 get_typed_pointer 0 4 2848 38 MemoryUsagePointers::get_typed_pointer 0 1 1137 445
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_typed_pointer
//       Access: Published
//  Description: Returns the nth pointer of the set, typecast to a
//               TypedObject if possible.  If the pointer is not a
//               TypedObject or if the cast cannot be made, returns
//               NULL.
////////////////////////////////////////////////////////////////////
65
TypedObject *MemoryUsagePointers::get_typed_pointer(int n) const;

2509 8 get_type 0 4 2848 29 MemoryUsagePointers::get_type 0 1 1138 305
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_type
//       Access: Published
//  Description: Returns the actual type of the nth pointer, if it is
//               known.
////////////////////////////////////////////////////////////////////
54
TypeHandle MemoryUsagePointers::get_type(int n) const;

2510 13 get_type_name 0 4 2848 34 MemoryUsagePointers::get_type_name 0 1 1139 308
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_type_name
//       Access: Published
//  Description: Returns the type name of the nth pointer, if it is
//               known.
////////////////////////////////////////////////////////////////////
69
basic_string< char > MemoryUsagePointers::get_type_name(int n) const;

2511 7 get_age 0 4 2848 28 MemoryUsagePointers::get_age 0 1 1140 459
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_age
//       Access: Published
//  Description: Returns the age of the nth pointer: the number of
//               seconds elapsed between the time it was allocated and
//               the time it was added to this set via a call to
//               MemoryUsage::get_pointers().
////////////////////////////////////////////////////////////////////
49
double MemoryUsagePointers::get_age(int n) const;

2512 18 get_python_pointer 0 4 2848 39 MemoryUsagePointers::get_python_pointer 0 1 1141 0
63
PyObject *MemoryUsagePointers::get_python_pointer(int n) const;

2513 5 clear 0 4 2848 26 MemoryUsagePointers::clear 0 1 1142 254
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::clear
//       Access: Published
//  Description: Empties the set of pointers.
////////////////////////////////////////////////////////////////////
38
void MemoryUsagePointers::clear(void);

2514 6 output 0 4 2848 27 MemoryUsagePointers::output 0 1 1143 227
////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
53
void MemoryUsagePointers::output(ostream &out) const;

2515 10 ISubStream 0 4 2849 22 ISubStream::ISubStream 0 2 1144 1145 925
// Filename: subStream.I
// Created by:  drose (02Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ISubStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: ISubStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
139
inline ISubStream::ISubStream(void);
inline ISubStream::ISubStream(IStreamWrapper *source, unsigned long int start, unsigned long int end);

2516 4 open 0 4 2849 16 ISubStream::open 0 1 1146 697
////////////////////////////////////////////////////////////////////
//     Function: ISubStream::open
//       Access: Public
//  Description: Starts the SubStream reading from the indicated
//               source, with the first character being the character
//               at position "start" within the source, for end -
//               start total characters.  The character at "end"
//               within the source will never be read; this will
//               appear to be EOF.
//
//               If end is zero, it indicates that the ISubStream will
//               continue until the end of the source stream.
////////////////////////////////////////////////////////////////////
108
inline ISubStream &ISubStream::open(IStreamWrapper *source, unsigned long int start, unsigned long int end);

2517 5 close 0 4 2849 17 ISubStream::close 0 1 1147 309
////////////////////////////////////////////////////////////////////
//     Function: ISubStream::close
//       Access: Public
//  Description: Resets the SubStream to empty, but does not actually
//               close the source istream.
////////////////////////////////////////////////////////////////////
43
inline ISubStream &ISubStream::close(void);

2518 11 ~ISubStream 0 4 2849 23 ISubStream::~ISubStream 0 0 0
30
ISubStream::~ISubStream(void);

2519 10 OSubStream 0 4 2850 22 OSubStream::OSubStream 0 3 1148 1149 1150 440
////////////////////////////////////////////////////////////////////
//     Function: OSubStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: OSubStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
156
inline OSubStream::OSubStream(void);
inline OSubStream::OSubStream(OStreamWrapper *dest, unsigned long int start, unsigned long int end, bool append = (0));

2520 4 open 0 4 2850 16 OSubStream::open 0 2 1151 1152 689
////////////////////////////////////////////////////////////////////
//     Function: OSubStream::open
//       Access: Public
//  Description: Starts the SubStream reading from the indicated
//               dest, with the first character being the character
//               at position "start" within the dest, for end -
//               start total characters.  The character at "end"
//               within the dest will never be read; this will
//               appear to be EOF.
//
//               If end is zero, it indicates that the OSubStream will
//               continue until the end of the dest stream.
////////////////////////////////////////////////////////////////////
125
inline OSubStream &OSubStream::open(OStreamWrapper *dest, unsigned long int start, unsigned long int end, bool append = (0));

2521 5 close 0 4 2850 17 OSubStream::close 0 1 1153 307
////////////////////////////////////////////////////////////////////
//     Function: OSubStream::close
//       Access: Public
//  Description: Resets the SubStream to empty, but does not actually
//               close the dest ostream.
////////////////////////////////////////////////////////////////////
43
inline OSubStream &OSubStream::close(void);

2522 11 ~OSubStream 0 4 2850 23 OSubStream::~OSubStream 0 0 0
30
OSubStream::~OSubStream(void);

2523 9 SubStream 0 4 2851 20 SubStream::SubStream 0 3 1154 1155 1156 438
////////////////////////////////////////////////////////////////////
//     Function: SubStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: SubStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
153
inline SubStream::SubStream(void);
inline SubStream::SubStream(StreamWrapper *nested, unsigned long int start, unsigned long int end, bool append = (0));

2524 4 open 0 4 2851 15 SubStream::open 0 2 1157 1158 534
////////////////////////////////////////////////////////////////////
//     Function: SubStream::open
//       Access: Public
//  Description: Starts the SubStream reading and writing from the
//               indicated nested stream, within the indicated range.
//               "end" is the first character outside of the range.
//
//               If end is zero, it indicates that the SubStream will
//               continue until the end of the nested stream.
////////////////////////////////////////////////////////////////////
124
inline SubStream &SubStream::open(StreamWrapper *nested, unsigned long int start, unsigned long int end, bool append = (0));

2525 5 close 0 4 2851 16 SubStream::close 0 1 1159 308
////////////////////////////////////////////////////////////////////
//     Function: SubStream::close
//       Access: Public
//  Description: Resets the SubStream to empty, but does not actually
//               close the nested ostream.
////////////////////////////////////////////////////////////////////
41
inline SubStream &SubStream::close(void);

2526 10 ~SubStream 0 4 2851 21 SubStream::~SubStream 0 0 0
28
SubStream::~SubStream(void);

2527 9 Multifile 0 4 2852 20 Multifile::Multifile 0 1 1160 2699
//
// A Multifile consists of the following elements:
//
// (1) A header.  This is always the first n bytes of the Multifile,
// and contains a magic number to identify the file, as well as
// version numbers and any file-specific parameters.
//
//   char[6]    The string Multifile::_header, a magic number.
//   int16      The file's major version number
//   int16      The file's minor version number
//   uint32     Scale factor.  This scales all address references within
//              the file.  Normally 1, this may be set larger to
//              support Multifiles larger than 4GB.
//   uint32     An overall modification timestamp for the entire multifile.
//
// (2) Zero or more index entries, one for each subfile within the
// Multifile.  These entries are of variable length.  The first one of
// these immediately follows the header, and the first word of each
// index entry contains the address of the next index entry.  A zero
// "next" address marks the end of the chain.  These may appear at any
// point within the Multifile; they do not necessarily appear in
// sequential order at the beginning of the file (although they will
// after the file has been "packed").
//
//   uint32     The address of the next entry.  0 to mark the end.
//   uint32     The address of this subfile's data record.
//   uint32     The length in bytes of this subfile's data record.
//   uint16     The Subfile::_flags member.
//  [uint32]    The original, uncompressed and unencrypted length of the
//               subfile, if it is compressed or encrypted.  This field
//               is only present if one or both of the SF_compressed
//               or SF_encrypted bits are set in _flags.
//   uint32     A modification timestamp for the subfile.
//   uint16     The length in bytes of the subfile's name.
//   char[n]    The subfile's name.
//
// (3) Zero or more data entries, one for each subfile.  These may
// appear at any point within the Multifile; they do not necessarily
// follow each index entry, nor are they necessarily all grouped
// together at the end (although they will be all grouped together at
// the end after the file has been "packed").  These are just blocks
// of literal data.
//
////////////////////////////////////////////////////////////////////
//     Function: Multifile::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::Copy Constructor
//       Access: Private
//  Description: Don't try to copy Multifiles.
////////////////////////////////////////////////////////////////////
27
Multifile::Multifile(void);

2528 9 open_read 0 4 2852 20 Multifile::open_read 0 5 1161 1162 1163 1164 1165 1282
////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read
//       Access: Published
//  Description: Opens the named Multifile on disk for reading.  The
//               Multifile index is read in, and the list of subfiles
//               becomes available; individual subfiles may then be
//               extracted or read, but the list of subfiles may not
//               be modified.
//
//               Also see the version of open_read() which accepts an
//               istream.  Returns true on success, false on failure.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read
//       Access: Public
//  Description: Opens an anonymous Multifile for reading using an
//               istream.  There must be seek functionality via
//               seekg() and tellg() on the istream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
////////////////////////////////////////////////////////////////////
194
bool Multifile::open_read(Filename const &multifile_name, int const &offset = (0));
bool Multifile::open_read(IStreamWrapper *multifile_stream, bool owns_pointer = (0), int const &offset = (0));

2529 10 open_write 0 4 2852 21 Multifile::open_write 0 3 1166 1167 1168 1366
////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_write
//       Access: Published
//  Description: Opens the named Multifile on disk for writing.  If
//               there already exists a file by that name, it is
//               truncated.  The Multifile is then prepared for
//               accepting a brand new set of subfiles, which will be
//               written to the indicated filename.  Individual
//               subfiles may not be extracted or read.
//
//               Also see the version of open_write() which accepts an
//               ostream.  Returns true on success, false on failure.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_write
//       Access: Public
//  Description: Opens an anonymous Multifile for writing using an
//               ostream.  There must be seek functionality via
//               seekp() and tellp() on the pstream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
////////////////////////////////////////////////////////////////////
139
bool Multifile::open_write(Filename const &multifile_name);
bool Multifile::open_write(ostream *multifile_stream, bool owns_pointer = (0));

2530 15 open_read_write 0 4 2852 26 Multifile::open_read_write 0 3 1169 1170 1171 1364
////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read_write
//       Access: Published
//  Description: Opens the named Multifile on disk for reading and
//               writing.  If there already exists a file by that
//               name, its index is read.  Subfiles may be added or
//               removed, and the resulting changes will be written to
//               the named file.
//
//               Also see the version of open_read_write() which
//               accepts an iostream.  Returns true on success, false
//               on failure.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read_write
//       Access: Public
//  Description: Opens an anonymous Multifile for reading and writing
//               using an iostream.  There must be seek functionality
//               via seekg()/seekp() and tellg()/tellp() on the
//               iostream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
////////////////////////////////////////////////////////////////////
150
bool Multifile::open_read_write(Filename const &multifile_name);
bool Multifile::open_read_write(iostream *multifile_stream, bool owns_pointer = (0));

2531 5 close 0 4 2852 16 Multifile::close 0 1 1172 402
////////////////////////////////////////////////////////////////////
//     Function: Multifile::close
//       Access: Published
//  Description: Closes the Multifile if it is open.  All changes are
//               flushed to disk, and the file becomes invalid for
//               further operations until the next call to open().
////////////////////////////////////////////////////////////////////
28
void Multifile::close(void);

2532 18 get_multifile_name 0 4 2852 29 Multifile::get_multifile_name 0 1 1173 788
// Filename: multifile.I
// Created by:  mike (09Jan97)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_multifile_name
//       Access: Published
//  Description: Returns the filename of the Multifile, if it is
//               available.
////////////////////////////////////////////////////////////////////
65
inline Filename const &Multifile::get_multifile_name(void) const;

2533 18 set_multifile_name 0 4 2852 29 Multifile::set_multifile_name 0 1 1174 471
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_multifile_name
//       Access: Published
//  Description: Replaces the filename of the Multifile.  This is
//               primarily used for documentation purposes only;
//               changing this name does not open the indicated file.
//               See open_read() or open_write() for that.
////////////////////////////////////////////////////////////////////
74
inline void Multifile::set_multifile_name(Filename const &multifile_name);

2534 13 is_read_valid 0 4 2852 24 Multifile::is_read_valid 0 1 1175 398
////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_read_valid
//       Access: Published
//  Description: Returns true if the Multifile has been opened for
//               read mode and there have been no errors, and
//               individual Subfile contents may be extracted.
////////////////////////////////////////////////////////////////////
49
inline bool Multifile::is_read_valid(void) const;

2535 14 is_write_valid 0 4 2852 25 Multifile::is_write_valid 0 1 1176 407
////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_write_valid
//       Access: Published
//  Description: Returns true if the Multifile has been opened for
//               write mode and there have been no errors, and
//               Subfiles may be added or removed from the Multifile.
////////////////////////////////////////////////////////////////////
50
inline bool Multifile::is_write_valid(void) const;

2536 12 needs_repack 0 4 2852 23 Multifile::needs_repack 0 1 1177 345
////////////////////////////////////////////////////////////////////
//     Function: Multifile::needs_repack
//       Access: Published
//  Description: Returns true if the Multifile index is suboptimal and
//               should be repacked.  Call repack() to achieve this.
////////////////////////////////////////////////////////////////////
48
inline bool Multifile::needs_repack(void) const;

2537 13 get_timestamp 0 4 2852 24 Multifile::get_timestamp 0 1 1178 588
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_timestamp
//       Access: Published
//  Description: Returns the modification timestamp of the overall
//               Multifile.  This indicates the most recent date at
//               which subfiles were added or removed from the
//               Multifile.  Note that it is logically possible for an
//               individual subfile to have a more recent timestamp
//               than the overall timestamp.
////////////////////////////////////////////////////////////////////
57
inline unsigned int Multifile::get_timestamp(void) const;

2538 20 set_record_timestamp 0 4 2852 31 Multifile::set_record_timestamp 0 1 1179 900
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_record_timestamp
//       Access: Published
//  Description: Sets the flag indicating whether timestamps should be
//               recorded within the Multifile or not.  The default is
//               true, indicating the Multifile will record timestamps
//               for the overall file and also for each subfile.  
//
//               If this is false, the Multifile will not record
//               timestamps internally.  In this case, the return
//               value from get_timestamp() or get_subfile_timestamp()
//               will be estimations.
//
//               You may want to set this false to minimize the
//               bitwise difference between independently-generated
//               Multifiles.
////////////////////////////////////////////////////////////////////
67
inline void Multifile::set_record_timestamp(bool record_timestamp);

2539 20 get_record_timestamp 0 4 2852 31 Multifile::get_record_timestamp 0 1 1180 388
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_record_timestamp
//       Access: Published
//  Description: Returns the flag indicating whether timestamps
//               should be recorded within the Multifile or not.  See
//               set_record_timestamp().
////////////////////////////////////////////////////////////////////
56
inline bool Multifile::get_record_timestamp(void) const;

2540 16 set_scale_factor 0 4 2852 27 Multifile::set_scale_factor 0 1 1181 1220
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_scale_factor
//       Access: Published
//  Description: Changes the internal scale factor for this Multifile.
//
//               This is normally 1, but it may be set to any
//               arbitrary value (greater than zero) to support
//               Multifile archives that exceed 4GB, if necessary.
//               (Individual subfiles may still not exceed 4GB.)
//
//               All addresses within the file are rounded up to the
//               next multiple of _scale_factor, and zeros are written
//               to the file to fill the resulting gaps.  Then the
//               address is divided by _scale_factor and written out
//               as a 32-bit integer.  Thus, setting a scale factor of
//               2 supports up to 8GB files, 3 supports 12GB files,
//               etc.
//
//               Calling this function on an already-existing
//               Multifile will have no immediate effect until a
//               future call to repack() or close() (or until the
//               Multifile is destructed).
////////////////////////////////////////////////////////////////////
60
void Multifile::set_scale_factor(unsigned int scale_factor);

2541 16 get_scale_factor 0 4 2852 27 Multifile::get_scale_factor 0 1 1182 321
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_scale_factor
//       Access: Published
//  Description: Returns the internal scale factor for this Multifile.
//               See set_scale_factor().
////////////////////////////////////////////////////////////////////
60
inline unsigned int Multifile::get_scale_factor(void) const;

2542 19 set_encryption_flag 0 4 2852 30 Multifile::set_encryption_flag 0 1 1183 818
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_flag
//       Access: Published
//  Description: Sets the flag indicating whether subsequently-added
//               subfiles should be encrypted before writing them to
//               the multifile.  If true, subfiles will be encrypted;
//               if false (the default), they will be written without
//               encryption.
//
//               When true, subfiles will be encrypted with the
//               password specified by set_encryption_password().  It
//               is possible to apply a different password to
//               different files, but the resulting file can't be
//               mounted via VFS.
////////////////////////////////////////////////////////////////////
54
inline void Multifile::set_encryption_flag(bool flag);

2543 19 get_encryption_flag 0 4 2852 30 Multifile::get_encryption_flag 0 1 1184 430
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_flag
//       Access: Published
//  Description: Returns the flag indicating whether
//               subsequently-added subfiles should be encrypted
//               before writing them to the multifile.  See
//               set_encryption_flag().
////////////////////////////////////////////////////////////////////
55
inline bool Multifile::get_encryption_flag(void) const;

2544 23 set_encryption_password 0 4 2852 34 Multifile::set_encryption_password 0 1 1185 696
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_password
//       Access: Published
//  Description: Specifies the password that will be used to encrypt
//               subfiles subsequently added to the multifile, if the
//               encryption flag is also set true (see
//               set_encryption_flag()).
//
//               It is possible to apply a different password to
//               different files, but the resulting file can't be
//               mounted via VFS.  Changing this value may cause an
//               implicit call to flush().
////////////////////////////////////////////////////////////////////
96
inline void Multifile::set_encryption_password(basic_string< char > const &encryption_password);

2545 23 get_encryption_password 0 4 2852 34 Multifile::get_encryption_password 0 1 1186 395
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_password
//       Access: Published
//  Description: Returns the password that will be used to encrypt
//               subfiles subsequently added to the multifile.  See
//               set_encryption_password().
////////////////////////////////////////////////////////////////////
82
inline basic_string< char > const &Multifile::get_encryption_password(void) const;

2546 24 set_encryption_algorithm 0 4 2852 35 Multifile::set_encryption_algorithm 0 1 1187 1073
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_algorithm
//       Access: Public
//  Description: Specifies the encryption algorithm that should be
//               used for future calls to add_subfile().  The default
//               is whatever is specified by the encryption-algorithm
//               config variable.  The complete set of available
//               algorithms is defined by the current version of
//               OpenSSL.
//
//               If an invalid algorithm is specified, there is no
//               immediate error return code, but flush() will fail
//               and the file will be invalid.
//
//               It is possible to apply a different encryption
//               algorithm to different files, and unlike the
//               password, this does not interfere with mounting the
//               multifile via VFS.  Changing this value may cause an
//               implicit call to flush().
////////////////////////////////////////////////////////////////////
98
inline void Multifile::set_encryption_algorithm(basic_string< char > const &encryption_algorithm);

2547 24 get_encryption_algorithm 0 4 2852 35 Multifile::get_encryption_algorithm 0 1 1188 331
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_algorithm
//       Access: Public
//  Description: Returns the encryption algorithm that was specified
//               by set_encryption_algorithm().
////////////////////////////////////////////////////////////////////
83
inline basic_string< char > const &Multifile::get_encryption_algorithm(void) const;

2548 25 set_encryption_key_length 0 4 2852 36 Multifile::set_encryption_key_length 0 1 1189 998
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_key_length
//       Access: Public
//  Description: Specifies the length of the key, in bits, that should
//               be used to encrypt the stream in future calls to
//               add_subfile().  The default is whatever is specified
//               by the encryption-key-length config variable.  
//
//               If an invalid key_length for the chosen algorithm is
//               specified, there is no immediate error return code,
//               but flush() will fail and the file will be invalid.
//
//               It is possible to apply a different key length to
//               different files, and unlike the password, this does
//               not interfere with mounting the multifile via VFS.
//               Changing this value may cause an implicit call to
//               flush().
////////////////////////////////////////////////////////////////////
76
inline void Multifile::set_encryption_key_length(int encryption_key_length);

2549 25 get_encryption_key_length 0 4 2852 36 Multifile::get_encryption_key_length 0 1 1190 344
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_key_length
//       Access: Public
//  Description: Returns the encryption key length, in bits, that was
//               specified by set_encryption_key_length().
////////////////////////////////////////////////////////////////////
60
inline int Multifile::get_encryption_key_length(void) const;

2550 30 set_encryption_iteration_count 0 4 2852 41 Multifile::set_encryption_iteration_count 0 1 1191 1174
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_iteration_count
//       Access: Public
//  Description: Specifies the number of times to repeatedly hash the
//               key before writing it to the stream in future calls
//               to add_subfile().  Its purpose is to make it
//               computationally more expensive for an attacker to
//               search the key space exhaustively.  This should be a
//               multiple of 1,000 and should not exceed about 65
//               million; the value 0 indicates just one application
//               of the hashing algorithm.
//
//               The default is whatever is specified by the
//               multifile-encryption-iteration-count config variable.
//
//               It is possible to apply a different iteration count
//               to different files, and unlike the password, this
//               does not interfere with mounting the multifile via
//               VFS.  Changing this value causes an implicit call to
//               flush().
////////////////////////////////////////////////////////////////////
86
inline void Multifile::set_encryption_iteration_count(int encryption_iteration_count);

2551 30 get_encryption_iteration_count 0 4 2852 41 Multifile::get_encryption_iteration_count 0 1 1192 328
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_iteration_count
//       Access: Public
//  Description: Returns the value that was specified by
//               set_encryption_iteration_count().
////////////////////////////////////////////////////////////////////
65
inline int Multifile::get_encryption_iteration_count(void) const;

2552 11 add_subfile 0 4 2852 22 Multifile::add_subfile 0 2 1193 1194 2178
////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_subfile
//       Access: Published
//  Description: Adds a file on disk as a subfile to the Multifile.
//               The file named by filename will be read and added to
//               the Multifile at the next call to flush().  If there
//               already exists a subfile with the indicated name, it
//               is replaced without examining its contents (but see
//               also update_subfile).
//
//               Filename::set_binary() or set_text() must have been
//               called previously to specify the nature of the source
//               file.  If set_text() was called, the text flag will
//               be set on the subfile.
//
//               Returns the subfile name on success (it might have
//               been modified slightly), or empty string on failure.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_subfile
//       Access: Public
//  Description: Adds a file from a stream as a subfile to the Multifile.
//               The indicated istream will be read and its contents
//               added to the Multifile at the next call to flush().
//               The file will be added as a binary subfile.
//
//               Note that the istream must remain untouched and
//               unused by any other code until flush() is called.  At
//               that time, the Multifile will read the entire
//               contents of the istream from the current file
//               position to the end of the file.  Subsequently, the
//               Multifile will *not* close or delete the istream.  It
//               is the caller's responsibility to ensure that the
//               istream pointer does not destruct during the lifetime
//               of the Multifile.
//
//               Returns the subfile name on success (it might have
//               been modified slightly), or empty string on failure.
////////////////////////////////////////////////////////////////////
268
basic_string< char > Multifile::add_subfile(basic_string< char > const &subfile_name, Filename const &filename, int compression_level);
basic_string< char > Multifile::add_subfile(basic_string< char > const &subfile_name, istream *subfile_data, int compression_level);

2553 14 update_subfile 0 4 2852 25 Multifile::update_subfile 0 1 1195 775
////////////////////////////////////////////////////////////////////
//     Function: Multifile::update_subfile
//       Access: Published
//  Description: Adds a file on disk to the subfile.  If a subfile
//               already exists with the same name, its contents are
//               compared byte-for-byte to the disk file, and it is
//               replaced only if it is different; otherwise, the
//               multifile is left unchanged.
//
//               Filename::set_binary() or set_text() must have been
//               called previously to specify the nature of the source
//               file.  If set_text() was called, the text flag will
//               be set on the subfile.
////////////////////////////////////////////////////////////////////
138
basic_string< char > Multifile::update_subfile(basic_string< char > const &subfile_name, Filename const &filename, int compression_level);

2554 11 ~CertRecord 0 4 2853 34 Multifile::CertRecord::~CertRecord 0 0 230
////////////////////////////////////////////////////////////////////
//     Function: Multifile::CertRecord::Destructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
48
inline Multifile::CertRecord::~CertRecord(void);

2555 13 add_signature 0 4 2852 24 Multifile::add_signature 0 5 1196 1197 1198 1199 1200 5970
////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               The chain filename may be empty if the certificate
//               does not require an authenticating certificate chain
//               (e.g. because it is self-signed).
//
//               The specified private key must match the certificate,
//               and the Multifile must be open in read-write mode.
//               The private key is only used for generating the
//               signature; it is not written to the Multifile and
//               cannot be retrieved from the Multifile later.
//               (However, the certificate *can* be retrieved from the
//               Multifile later, to identify the entity that created
//               the signature.)
//
//               This implicitly causes a repack() operation if one is
//               needed.  Returns true on success, false on failure.
//
//               This flavor of add_signature() reads the certificate
//               and private key from a PEM-formatted file, for
//               instance as generated by the openssl command.  If the
//               private key file is password-encrypted, the third
//               parameter will be used as the password to decrypt it.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               This flavor of add_signature() reads the certificate,
//               private key, and certificate chain from the same
//               PEM-formatted file.  It takes the first private key
//               found as the intended key, and then uses the first
//               certificate found that matches that key as the
//               signing certificate.  Any other certificates in the
//               file are taken to be part of the chain.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               If chain is non-NULL, it represents the certificate
//               chain that validates the certificate.
//
//               The specified private key must match the certificate,
//               and the Multifile must be open in read-write mode.
//               The private key is only used for generating the
//               signature; it is not written to the Multifile and
//               cannot be retrieved from the Multifile later.
//               (However, the certificate *can* be retrieved from the
//               Multifile later, to identify the entity that created
//               the signature.)
//
//               This implicitly causes a repack() operation if one is
//               needed.  Returns true on success, false on failure.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               The signature certificate is the first certificate on
//               the CertChain object.  Any remaining certificates are
//               support certificates to authenticate the first one.
//
//               The specified private key must match the certificate,
//               and the Multifile must be open in read-write mode.
//               The private key is only used for generating the
//               signature; it is not written to the Multifile and
//               cannot be retrieved from the Multifile later.
//               (However, the certificate *can* be retrieved from the
//               Multifile later, to identify the entity that created
//               the signature.)
//
//               This implicitly causes a repack() operation if one is
//               needed.  Returns true on success, false on failure.
////////////////////////////////////////////////////////////////////
427
bool Multifile::add_signature(Filename const &certificate, Filename const &chain, Filename const &pkey, basic_string< char > const &password = (""));
bool Multifile::add_signature(Filename const &composite, basic_string< char > const &password = (""));
bool Multifile::add_signature(X509 *certificate, unknown *chain, EVP_PKEY *pkey);
bool Multifile::add_signature(vector< Multifile::CertRecord > const &chain, EVP_PKEY *pkey);

2556 18 get_num_signatures 0 4 2852 29 Multifile::get_num_signatures 0 1 1201 921
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_num_signatures
//       Access: Published
//  Description: Returns the number of matching signatures found on
//               the Multifile.  These signatures may be iterated via
//               get_signature() and related methods.
//
//               A signature on this list is guaranteed to match the
//               Multifile contents, proving that the Multifile has
//               been unmodified since the signature was applied.
//               However, this does not guarantee that the certificate
//               itself is actually from who it says it is from; only
//               that it matches the Multifile contents.  See
//               validate_signature_certificate() to authenticate a
//               particular certificate.
////////////////////////////////////////////////////////////////////
46
int Multifile::get_num_signatures(void) const;

2557 13 get_signature 0 4 2852 24 Multifile::get_signature 0 1 1202 332
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_signature
//       Access: Published
//  Description: Returns the nth signature found on the Multifile.
//               See the comments in get_num_signatures().
////////////////////////////////////////////////////////////////////
77
vector< Multifile::CertRecord > const &Multifile::get_signature(int n) const;

2558 26 get_signature_subject_name 0 4 2852 37 Multifile::get_signature_subject_name 0 1 1203 669
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_signature_subject_name
//       Access: Published
//  Description: Returns the "subject name" for the nth signature found
//               on the Multifile.  This is a string formatted
//               according to RFC2253 that should more-or-less
//               identify a particular certificate; when paired with
//               the public key (see get_signature_public_key()), it
//               can uniquely identify a certificate.  See the
//               comments in get_num_signatures().
////////////////////////////////////////////////////////////////////
72
basic_string< char > Multifile::get_signature_subject_name(int n) const;

2559 27 get_signature_friendly_name 0 4 2852 38 Multifile::get_signature_friendly_name 0 1 1204 598
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_signature_friendly_name
//       Access: Published
//  Description: Returns a "friendly name" for the nth signature found
//               on the Multifile.  This attempts to extract out the
//               most meaningful part of the subject name.  It returns
//               the emailAddress, if it is defined; otherwise, it
//               returns the commonName.
//               See the comments in get_num_signatures().
////////////////////////////////////////////////////////////////////
73
basic_string< char > Multifile::get_signature_friendly_name(int n) const;

2560 24 get_signature_public_key 0 4 2852 35 Multifile::get_signature_public_key 0 1 1205 691
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_signature_public_key
//       Access: Published
//  Description: Returns the public key used for the nth signature
//               found on the Multifile.  This is encoded in DER form
//               and returned as a string of hex digits.
//
//               This can be used, in conjunction with the subject
//               name (see get_signature_subject_name()), to uniquely
//               identify a particular certificate and its subsequent
//               reissues.  See the comments in get_num_signatures().
////////////////////////////////////////////////////////////////////
70
basic_string< char > Multifile::get_signature_public_key(int n) const;

2561 27 print_signature_certificate 0 4 2852 38 Multifile::print_signature_certificate 0 1 1206 415
////////////////////////////////////////////////////////////////////
//     Function: Multifile::print_signature_certificate
//       Access: Published
//  Description: Writes the certificate for the nth signature, in
//               user-readable verbose form, to the indicated stream.
//               See the comments in get_num_signatures().
////////////////////////////////////////////////////////////////////
71
void Multifile::print_signature_certificate(int n, ostream &out) const;

2562 27 write_signature_certificate 0 4 2852 38 Multifile::write_signature_certificate 0 1 1207 398
////////////////////////////////////////////////////////////////////
//     Function: Multifile::write_signature_certificate
//       Access: Published
//  Description: Writes the certificate for the nth signature, in
//               PEM form, to the indicated stream.  See the comments
//               in get_num_signatures().
////////////////////////////////////////////////////////////////////
71
void Multifile::write_signature_certificate(int n, ostream &out) const;

2563 30 validate_signature_certificate 0 4 2852 41 Multifile::validate_signature_certificate 0 1 1208 595
////////////////////////////////////////////////////////////////////
//     Function: Multifile::validate_signature_certificate
//       Access: Published
//  Description: Checks that the certificate used for the nth
//               signature is a valid, authorized certificate with
//               some known certificate authority.  Returns 0 if it
//               is valid, -1 if there is some error, or the
//               corresponding OpenSSL error code if it is invalid,
//               out-of-date, or self-signed.
////////////////////////////////////////////////////////////////////
59
int Multifile::validate_signature_certificate(int n) const;

2564 5 flush 0 4 2852 16 Multifile::flush 0 1 1209 1123
// HAVE_OPENSSL

// HAVE_OPENSSL
////////////////////////////////////////////////////////////////////
//     Function: Multifile::flush
//       Access: Published
//  Description: Writes all contents of the Multifile to disk.  Until
//               flush() is called, add_subfile() and remove_subfile()
//               do not actually do anything to disk.  At this point,
//               all of the recently-added subfiles are read and their
//               contents are added to the end of the Multifile, and
//               the recently-removed subfiles are marked gone from
//               the Multifile.
//
//               This may result in a suboptimal index.  To guarantee
//               that the index is written at the beginning of the
//               file, call repack() instead of flush().
//
//               It is not necessary to call flush() explicitly unless
//               you are concerned about reading the recently-added
//               subfiles immediately.
//
//               Returns true on success, false on failure.
////////////////////////////////////////////////////////////////////
28
bool Multifile::flush(void);

2565 6 repack 0 4 2852 17 Multifile::repack 0 1 1210 959
////////////////////////////////////////////////////////////////////
//     Function: Multifile::repack
//       Access: Published
//  Description: Forces a complete rewrite of the Multifile and all of
//               its contents, so that its index will appear at the
//               beginning of the file with all of the subfiles listed
//               in alphabetical order.  This is considered optimal
//               for reading, and is the standard configuration; but
//               it is not essential to do this.
//
//               It is only valid to call this if the Multifile was
//               opened using open_read_write() and an explicit
//               filename, rather than an iostream.  Also, we must
//               have write permission to the directory containing the
//               Multifile.
//
//               Returns true on success, false on failure.
////////////////////////////////////////////////////////////////////
29
bool Multifile::repack(void);

2566 16 get_num_subfiles 0 4 2852 27 Multifile::get_num_subfiles 0 1 1211 412
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_num_subfiles
//       Access: Published
//  Description: Returns the number of subfiles within the Multifile.
//               The subfiles may be accessed in alphabetical order by
//               iterating through [0 .. get_num_subfiles()).
////////////////////////////////////////////////////////////////////
44
int Multifile::get_num_subfiles(void) const;

2567 12 find_subfile 0 4 2852 23 Multifile::find_subfile 0 1 1212 370
////////////////////////////////////////////////////////////////////
//     Function: Multifile::find_subfile
//       Access: Published
//  Description: Returns the index of the subfile with the indicated
//               name, or -1 if the named subfile is not within the
//               Multifile.
////////////////////////////////////////////////////////////////////
76
int Multifile::find_subfile(basic_string< char > const &subfile_name) const;

2568 13 has_directory 0 4 2852 24 Multifile::has_directory 0 1 1213 461
////////////////////////////////////////////////////////////////////
//     Function: Multifile::has_directory
//       Access: Published
//  Description: Returns true if the indicated subfile name is the
//               directory prefix to one or more files within the
//               Multifile.  That is, the Multifile contains at least
//               one file named "subfile_name/...".
////////////////////////////////////////////////////////////////////
78
bool Multifile::has_directory(basic_string< char > const &subfile_name) const;

2569 14 scan_directory 0 4 2852 25 Multifile::scan_directory 0 1 1214 755
////////////////////////////////////////////////////////////////////
//     Function: Multifile::scan_directory
//       Access: Published
//  Description: Considers subfile_name to be the name of a
//               subdirectory within the Multifile, but not a file
//               itself; fills the given vector up with the sorted list
//               of subdirectories or files within the named
//               directory.
//
//               Note that directories do not exist explicitly within
//               a Multifile; this just checks for the existence of
//               files with the given initial prefix.
//
//               Returns true if successful, false otherwise.
////////////////////////////////////////////////////////////////////
121
bool Multifile::scan_directory(vector< basic_string< char > > &contents, basic_string< char > const &subfile_name) const;

2570 14 remove_subfile 0 4 2852 25 Multifile::remove_subfile 0 2 1215 1216 1596
////////////////////////////////////////////////////////////////////
//     Function: Multifile::remove_subfile
//       Access: Published
//  Description: Removes the named subfile from the Multifile, if it
//               exists; returns true if successfully removed, or
//               false if it did not exist in the first place.  The
//               file will not actually be removed from the disk until
//               the next call to flush().
//
//               Note that this does not actually remove the data from
//               the indicated subfile; it simply removes it from the
//               index.  The Multifile will not be reduced in size
//               after this operation, until the next call to
//               repack().
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::remove_subfile
//       Access: Published
//  Description: Removes the nth subfile from the Multifile.  This
//               will cause all subsequent index numbers to decrease
//               by one.  The file will not actually be removed from
//               the disk until the next call to flush().
//
//               Note that this does not actually remove the data from
//               the indicated subfile; it simply removes it from the
//               index.  The Multifile will not be reduced in size
//               after this operation, until the next call to
//               repack().
////////////////////////////////////////////////////////////////////
123
void Multifile::remove_subfile(int index);
inline bool Multifile::remove_subfile(basic_string< char > const &subfile_name);

2571 16 get_subfile_name 0 4 2852 27 Multifile::get_subfile_name 0 1 1217 263
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_name
//       Access: Published
//  Description: Returns the name of the nth subfile.
////////////////////////////////////////////////////////////////////
73
basic_string< char > const &Multifile::get_subfile_name(int index) const;

2572 18 get_subfile_length 0 4 2852 29 Multifile::get_subfile_length 0 1 1218 433
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_length
//       Access: Published
//  Description: Returns the uncompressed data length of the nth
//               subfile.  This might return 0 if the subfile has
//               recently been added and flush() has not yet been
//               called.
////////////////////////////////////////////////////////////////////
60
unsigned int Multifile::get_subfile_length(int index) const;

2573 21 get_subfile_timestamp 0 4 2852 32 Multifile::get_subfile_timestamp 0 1 1219 567
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_timestamp
//       Access: Published
//  Description: Returns the modification time of the nth
//               subfile.  If this is called on an older .mf file,
//               which did not store individual timestamps in the file
//               (or if get_record_timestamp() is false), this will
//               return the modification time of the overall
//               multifile.
////////////////////////////////////////////////////////////////////
63
unsigned int Multifile::get_subfile_timestamp(int index) const;

2574 21 is_subfile_compressed 0 4 2852 32 Multifile::is_subfile_compressed 0 1 1220 372
////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_subfile_compressed
//       Access: Published
//  Description: Returns true if the indicated subfile has been
//               compressed when stored within the archive, false
//               otherwise.
////////////////////////////////////////////////////////////////////
55
bool Multifile::is_subfile_compressed(int index) const;

2575 20 is_subfile_encrypted 0 4 2852 31 Multifile::is_subfile_encrypted 0 1 1221 370
////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_subfile_encrypted
//       Access: Published
//  Description: Returns true if the indicated subfile has been
//               encrypted when stored within the archive, false
//               otherwise.
////////////////////////////////////////////////////////////////////
54
bool Multifile::is_subfile_encrypted(int index) const;

2576 15 is_subfile_text 0 4 2852 26 Multifile::is_subfile_text 0 1 1222 647
////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_subfile_text
//       Access: Published
//  Description: Returns true if the indicated subfile represents text
//               data, or false if it represents binary data.  If the
//               file is text data, it may have been processed by
//               end-of-line conversion when it was added.  (But the
//               actual bits in the multifile will represent the
//               standard Unix end-of-line convention, e.g. \n instead
//               of \r\n.)
////////////////////////////////////////////////////////////////////
49
bool Multifile::is_subfile_text(int index) const;

2577 13 get_index_end 0 4 2852 24 Multifile::get_index_end 0 1 1223 688
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_index_end
//       Access: Published
//  Description: Returns the first byte that is guaranteed to follow
//               any index byte already written to disk in the
//               Multifile.
//
//               This number is largely meaningless in many cases, but
//               if needs_repack() is false, and the file is flushed,
//               this will indicate the number of bytes in the header
//               + index.  Everything at this byte position and later
//               will be actual data.
////////////////////////////////////////////////////////////////////
41
int Multifile::get_index_end(void) const;

2578 26 get_subfile_internal_start 0 4 2852 37 Multifile::get_subfile_internal_start 0 1 1224 653
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_internal_start
//       Access: Published
//  Description: Returns the starting byte position within the
//               Multifile at which the indicated subfile begins.
//               This may be used, with get_subfile_internal_length(),
//               for low-level access to the subfile, but usually it
//               is better to use open_read_subfile() instead (which
//               automatically decrypts and/or uncompresses the
//               subfile data).
////////////////////////////////////////////////////////////////////
59
int Multifile::get_subfile_internal_start(int index) const;

2579 27 get_subfile_internal_length 0 4 2852 38 Multifile::get_subfile_internal_length 0 1 1225 639
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_internal_length
//       Access: Published
//  Description: Returns the number of bytes the indicated subfile
//               consumes within the archive.  For compressed
//               subfiles, this will generally be smaller than
//               get_subfile_length(); for encrypted (but
//               noncompressed) subfiles, it may be slightly
//               different, for noncompressed and nonencrypted
//               subfiles, it will be equal.
////////////////////////////////////////////////////////////////////
69
unsigned int Multifile::get_subfile_internal_length(int index) const;

2580 12 read_subfile 0 4 2852 23 Multifile::read_subfile 0 1 1226 925
////////////////////////////////////////////////////////////////////
//     Function: Multifile::read_subfile
//       Access: Published
//  Description: Returns a string that contains the entire contents of
//               the indicated subfile.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::read_subfile
//       Access: Public
//  Description: Fills a string with the entire contents of
//               the indicated subfile.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::read_subfile
//       Access: Public
//  Description: Fills a pvector with the entire contents of
//               the indicated subfile.
////////////////////////////////////////////////////////////////////
63
inline basic_string< char > Multifile::read_subfile(int index);

2581 17 open_read_subfile 0 4 2852 28 Multifile::open_read_subfile 0 1 1227 1636
////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read_subfile
//       Access: Published
//  Description: Returns an istream that may be used to read the
//               indicated subfile.  You may seek() within this
//               istream to your heart's content; even though it will
//               be a reference to the already-opened pfstream of the
//               Multifile itself, byte 0 appears to be the beginning
//               of the subfile and EOF appears to be the end of the
//               subfile.
//
//               The returned istream will have been allocated via
//               new; you should pass the pointer to
//               close_read_subfile() when you are finished with it to
//               delete it and release its resources.
//
//               Any future calls to repack() or close() (or the
//               Multifile destructor) will invalidate all currently
//               open subfile pointers.
//
//               The return value will be NULL if the stream cannot be
//               opened for some reason.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read_subfile
//       Access: Private
//  Description: This variant of open_read_subfile() is used
//               internally only, and accepts a pointer to the
//               internal Subfile object, which is assumed to be valid
//               and written to the multifile.
////////////////////////////////////////////////////////////////////
49
istream *Multifile::open_read_subfile(int index);

2582 18 close_read_subfile 0 4 2852 29 Multifile::close_read_subfile 0 1 1228 531
////////////////////////////////////////////////////////////////////
//     Function: Multifile::close_read_subfile
//       Access: Published, Static
//  Description: Closes a file opened by a previous call to
//               open_read_subfile().  This really just deletes the
//               istream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
////////////////////////////////////////////////////////////////////
59
static void Multifile::close_read_subfile(istream *stream);

2583 15 extract_subfile 0 4 2852 26 Multifile::extract_subfile 0 1 1229 300
////////////////////////////////////////////////////////////////////
//     Function: Multifile::extract_subfile
//       Access: Published
//  Description: Extracts the nth subfile into a file with the given
//               name.
////////////////////////////////////////////////////////////////////
69
bool Multifile::extract_subfile(int index, Filename const &filename);

2584 18 extract_subfile_to 0 4 2852 29 Multifile::extract_subfile_to 0 1 1230 276
////////////////////////////////////////////////////////////////////
//     Function: Multifile::extract_subfile_to
//       Access: Public
//  Description: Extracts the nth subfile to the indicated ostream.
////////////////////////////////////////////////////////////////////
60
bool Multifile::extract_subfile_to(int index, ostream &out);

2585 15 compare_subfile 0 4 2852 26 Multifile::compare_subfile 0 1 1231 858
////////////////////////////////////////////////////////////////////
//     Function: Multifile::compare_subfile
//       Access: Published
//  Description: Performs a byte-for-byte comparison of the indicated
//               file on disk with the nth subfile.  Returns true if
//               the files are equivalent, or false if they are
//               different (or the file is missing).
//
//               If Filename::set_binary() or set_text() has already
//               been called, it specifies the nature of the source
//               file.  If this is different from the text flag of the
//               subfile, the comparison will always return false.
//               If this has not been specified, it will be set from
//               the text flag of the subfile.
////////////////////////////////////////////////////////////////////
69
bool Multifile::compare_subfile(int index, Filename const &filename);

2586 6 output 0 4 2852 17 Multifile::output 0 1 1232 217
////////////////////////////////////////////////////////////////////
//     Function: Multifile::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
43
void Multifile::output(ostream &out) const;

2587 2 ls 0 4 2852 13 Multifile::ls 0 2 1233 1234 263
////////////////////////////////////////////////////////////////////
//     Function: Multifile::ls
//       Access: Published
//  Description: Shows a list of all subfiles within the Multifile.
////////////////////////////////////////////////////////////////////
48
void Multifile::ls(ostream &out = (cout)) const;

2588 16 get_magic_number 0 4 2852 27 Multifile::get_magic_number 0 1 1235 346
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_magic_number
//       Access: Published, Static
//  Description: Returns a string with the first n bytes written to a
//               Multifile, to identify it as a Multifile.
////////////////////////////////////////////////////////////////////
69
static inline basic_string< char > Multifile::get_magic_number(void);

2589 17 set_header_prefix 0 4 2852 28 Multifile::set_header_prefix 0 1 1236 1041
////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_header_prefix
//       Access: Published
//  Description: Sets the string which is written to the Multifile
//               before the Multifile header.  This string must begin
//               with a hash mark and end with a newline character;
//               and if it includes embedded newline characters, each
//               one must be followed by a hash mark.  If these
//               conditions are not initially true, the string will be
//               modified as necessary to make it so.
//
//               This is primarily useful as a simple hack to allow
//               p3d applications to be run directly from the command
//               line on Unix-like systems.
//
//               The return value is true if successful, or false on
//               failure (for instance, because the header prefix
//               violates the above rules).
////////////////////////////////////////////////////////////////////
77
void Multifile::set_header_prefix(basic_string< char > const &header_prefix);

2590 17 get_header_prefix 0 4 2852 28 Multifile::get_header_prefix 0 1 1237 345
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_header_prefix
//       Access: Published
//  Description: Returns the string that preceded the Multifile header
//               on the file, if any.  See set_header_prefix().
////////////////////////////////////////////////////////////////////
76
inline basic_string< char > const &Multifile::get_header_prefix(void) const;

2591 7 Namable 0 4 2854 16 Namable::Namable 0 3 1238 1239 1240 922
// Filename: namable.I
// Created by:  drose (16Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Namable::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Namable::Copy Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
119
inline Namable::Namable(basic_string< char > const &initial_name = (""));
inline Namable::Namable(Namable const &copy);

2592 10 operator = 0 4 2854 19 Namable::operator = 0 1 1241 229
////////////////////////////////////////////////////////////////////
//     Function: Namable::Copy Assignment Operator
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
58
inline Namable &Namable::operator =(Namable const &other);

2593 8 set_name 0 4 2854 17 Namable::set_name 0 1 1242 213
////////////////////////////////////////////////////////////////////
//     Function: Namable::set_name
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
64
inline void Namable::set_name(basic_string< char > const &name);

2594 10 clear_name 0 4 2854 19 Namable::clear_name 0 1 1243 251
////////////////////////////////////////////////////////////////////
//     Function: Namable::clear_name
//       Access: Public
//  Description: Resets the Namable's name to empty.
////////////////////////////////////////////////////////////////////
38
inline void Namable::clear_name(void);

2595 8 has_name 0 4 2854 17 Namable::has_name 0 1 1244 311
////////////////////////////////////////////////////////////////////
//     Function: Namable::has_name
//       Access: Public
//  Description: Returns true if the Namable has a nonempty name set,
//               false if the name is empty.
////////////////////////////////////////////////////////////////////
42
inline bool Namable::has_name(void) const;

2596 8 get_name 0 4 2854 17 Namable::get_name 0 1 1245 213
////////////////////////////////////////////////////////////////////
//     Function: Namable::get_name
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
65
inline basic_string< char > const &Namable::get_name(void) const;

2597 6 output 0 4 2854 15 Namable::output 0 1 1246 483
// In the absence of any definition to the contrary, outputting a
// Namable will write out its name.

////////////////////////////////////////////////////////////////////
//     Function: Namable::output
//       Access: Public
//  Description: Outputs the Namable.  This function simply writes the
//               name to the output stream; most Namable derivatives
//               will probably redefine this.
////////////////////////////////////////////////////////////////////
48
inline void Namable::output(ostream &out) const;

2598 14 get_class_type 0 4 2854 23 Namable::get_class_type 0 1 1247 0
48
static TypeHandle Namable::get_class_type(void);

2599 8 ~Namable 0 4 2854 17 Namable::~Namable 0 0 0
24
Namable::~Namable(void);

2600 11 SubfileInfo 0 4 2855 24 SubfileInfo::SubfileInfo 0 4 1248 1249 1250 1251 1402
// Filename: subfileInfo.I
// Created by:  drose (20Jun11)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Default Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Copy Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
257
inline SubfileInfo::SubfileInfo(void);
inline SubfileInfo::SubfileInfo(FileReference const *file, int start, int size);
inline SubfileInfo::SubfileInfo(Filename const &filename, int start, int size);
inline SubfileInfo::SubfileInfo(SubfileInfo const &copy);

2601 10 operator = 0 4 2855 23 SubfileInfo::operator = 0 1 1252 237
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Copy Assignment Operator
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
61
inline void SubfileInfo::operator =(SubfileInfo const &copy);

2602 8 is_empty 0 4 2855 21 SubfileInfo::is_empty 0 1 1253 322
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::is_empty
//       Access: Published
//  Description: Returns true if this SubfileInfo doesn't define any
//               file, false if it has real data.
////////////////////////////////////////////////////////////////////
46
inline bool SubfileInfo::is_empty(void) const;

2603 8 get_file 0 4 2855 21 SubfileInfo::get_file 0 1 1254 273
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::get_file
//       Access: Published
//  Description: Returns the FileReference that represents this file.
////////////////////////////////////////////////////////////////////
62
inline FileReference const *SubfileInfo::get_file(void) const;

2604 12 get_filename 0 4 2855 25 SubfileInfo::get_filename 0 1 1255 252
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::get_filename
//       Access: Published
//  Description: A shortcut to the filename.
////////////////////////////////////////////////////////////////////
61
inline Filename const &SubfileInfo::get_filename(void) const;

2605 9 get_start 0 4 2855 22 SubfileInfo::get_start 0 1 1256 305
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::get_start
//       Access: Published
//  Description: Returns the offset within the file at which this file
//               data begins.
////////////////////////////////////////////////////////////////////
46
inline int SubfileInfo::get_start(void) const;

2606 8 get_size 0 4 2855 21 SubfileInfo::get_size 0 1 1257 339
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::get_size
//       Access: Published
//  Description: Returns the number of consecutive bytes, beginning at
//               get_start(), that correspond to this file data.
////////////////////////////////////////////////////////////////////
45
inline int SubfileInfo::get_size(void) const;

2607 6 output 0 4 2855 19 SubfileInfo::output 0 1 1258 219
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
45
void SubfileInfo::output(ostream &out) const;

2608 12 ~SubfileInfo 0 4 2855 25 SubfileInfo::~SubfileInfo 0 0 0
32
SubfileInfo::~SubfileInfo(void);

2609 15 get_file_system 0 6 2856 28 VirtualFile::get_file_system 0 1 1259 0
72
virtual VirtualFileSystem *VirtualFile::get_file_system(void) const = 0;

2610 12 get_filename 0 6 2856 25 VirtualFile::get_filename 0 1 1260 0
59
virtual Filename VirtualFile::get_filename(void) const = 0;

2611 21 get_original_filename 0 4 2856 34 VirtualFile::get_original_filename 0 1 1261 418
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_original_filename
//       Access: Published
//  Description: Returns the original filename as it was used to
//               locate this VirtualFile.  This is usually, but not
//               always, the same string returned by get_filename().
////////////////////////////////////////////////////////////////////
70
inline Filename const &VirtualFile::get_original_filename(void) const;

2612 8 has_file 0 6 2856 21 VirtualFile::has_file 0 1 1262 280
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::has_file
//       Access: Published, Virtual
//  Description: Returns true if this file exists, false otherwise.
////////////////////////////////////////////////////////////////////
47
virtual bool VirtualFile::has_file(void) const;

2613 12 is_directory 0 6 2856 25 VirtualFile::is_directory 0 1 1263 354
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::is_directory
//       Access: Published, Virtual
//  Description: Returns true if this file represents a directory (and
//               scan_directory() may be called), false otherwise.
////////////////////////////////////////////////////////////////////
51
virtual bool VirtualFile::is_directory(void) const;

2614 15 is_regular_file 0 6 2856 28 VirtualFile::is_regular_file 0 1 1264 355
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::is_regular_file
//       Access: Published, Virtual
//  Description: Returns true if this file represents a regular file
//               (and read_file() may be called), false otherwise.
////////////////////////////////////////////////////////////////////
54
virtual bool VirtualFile::is_regular_file(void) const;

2615 11 is_writable 0 6 2856 24 VirtualFile::is_writable 0 1 1265 406
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::is_writable
//       Access: Published, Virtual
//  Description: Returns true if this file may be written to, which
//               implies write_file() may be called (unless it is a
//               directory instead of a regular file).
////////////////////////////////////////////////////////////////////
50
virtual bool VirtualFile::is_writable(void) const;

2616 11 delete_file 0 6 2856 24 VirtualFile::delete_file 0 1 1266 454
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::delete_file
//       Access: Public
//  Description: Attempts to delete this file or directory.  This can
//               remove a single file or an empty directory.  It will
//               not remove a nonempty directory.  Returns true on
//               success, false on failure.
////////////////////////////////////////////////////////////////////
44
virtual bool VirtualFile::delete_file(void);

2617 11 rename_file 0 6 2856 24 VirtualFile::rename_file 0 1 1267 964
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::rename_file
//       Access: Public
//  Description: Attempts to move or rename this file or directory.
//               If the original file is an ordinary file, it will
//               quietly replace any already-existing file in the new
//               filename (but not a directory).  If the original file
//               is a directory, the new filename must not already
//               exist.
//
//               If the file is a directory, the new filename must be
//               within the same mount point.  If the file is an
//               ordinary file, the new filename may be anywhere; but
//               if it is not within the same mount point then the
//               rename operation is automatically performed as a
//               two-step copy-and-delete operation.
////////////////////////////////////////////////////////////////////
61
virtual bool VirtualFile::rename_file(VirtualFile *new_file);

2618 9 copy_file 0 6 2856 22 VirtualFile::copy_file 0 1 1268 362
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::copy_file
//       Access: Public
//  Description: Attempts to copy the contents of this file to the
//               indicated file.  Returns true on success, false on
//               failure.
////////////////////////////////////////////////////////////////////
59
virtual bool VirtualFile::copy_file(VirtualFile *new_file);

2619 14 scan_directory 0 4 2856 27 VirtualFile::scan_directory 0 1 1269 522
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::scan_directory
//       Access: Published
//  Description: If the file represents a directory (that is,
//               is_directory() returns true), this returns the list
//               of files within the directory at the current time.
//               Returns NULL if the file is not a directory or if the
//               directory cannot be read.
////////////////////////////////////////////////////////////////////
69
PointerTo< VirtualFileList > VirtualFile::scan_directory(void) const;

2620 6 output 0 4 2856 19 VirtualFile::output 0 1 1270 219
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::output
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
45
void VirtualFile::output(ostream &out) const;

2621 2 ls 0 4 2856 15 VirtualFile::ls 0 2 1271 1272 287
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::ls
//       Access: Published
//  Description: If the file represents a directory, lists its
//               contents.
////////////////////////////////////////////////////////////////////
50
void VirtualFile::ls(ostream &out = (cout)) const;

2622 6 ls_all 0 4 2856 19 VirtualFile::ls_all 0 2 1273 1274 335
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::ls_all
//       Access: Published
//  Description: If the file represents a directory, recursively lists
//               its contents and those of all subdirectories.
////////////////////////////////////////////////////////////////////
54
void VirtualFile::ls_all(ostream &out = (cout)) const;

2623 9 read_file 0 4 2856 22 VirtualFile::read_file 0 1 1275 1047
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::read_file
//       Access: Public
//  Description: Returns the entire contents of the file as a string.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::read_file
//       Access: Public
//  Description: Fills up the indicated string with the contents of
//               the file, if it is a regular file.  Returns true on
//               success, false otherwise.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::read_file
//       Access: Public, Virtual
//  Description: Fills up the indicated pvector with the contents of
//               the file, if it is a regular file.  Returns true on
//               success, false otherwise.
////////////////////////////////////////////////////////////////////
75
inline basic_string< char > VirtualFile::read_file(bool auto_unwrap) const;

2624 14 open_read_file 0 6 2856 27 VirtualFile::open_read_file 0 1 1276 449
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_read_file
//       Access: Published, Virtual
//  Description: Opens the file for reading.  Returns a newly
//               allocated istream on success (which you should
//               eventually delete when you are done reading).
//               Returns NULL on failure.
////////////////////////////////////////////////////////////////////
69
virtual istream *VirtualFile::open_read_file(bool auto_unwrap) const;

2625 15 close_read_file 0 6 2856 28 VirtualFile::close_read_file 0 1 1277 519
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::close_read_file
//       Access: Published
//  Description: Closes a file opened by a previous call to
//               open_read_file().  This really just deletes the
//               istream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
////////////////////////////////////////////////////////////////////
65
virtual void VirtualFile::close_read_file(istream *stream) const;

2626 19 was_read_successful 0 6 2856 32 VirtualFile::was_read_successful 0 1 1278 627
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::was_read_successful
//       Access: Published, Virtual
//  Description: Call this method after a reading the istream returned
//               by open_read_file() to completion.  If it returns
//               true, the file was read completely and without error;
//               if it returns false, there may have been some errors
//               or a truncated file read.  This is particularly
//               likely if the stream is a VirtualFileHTTP.
////////////////////////////////////////////////////////////////////
58
virtual bool VirtualFile::was_read_successful(void) const;

2627 10 write_file 0 4 2856 23 VirtualFile::write_file 0 1 1279 655
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::write_file
//       Access: Public
//  Description: Writes the entire contents of the file as a string,
//               if it is writable.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::write_file
//       Access: Public, Virtual
//  Description: Writes the indicated data to the file, if it is
//               writable.  Returns true on success, false otherwise.
////////////////////////////////////////////////////////////////////
86
inline bool VirtualFile::write_file(basic_string< char > const &data, bool auto_wrap);

2628 15 open_write_file 0 6 2856 28 VirtualFile::open_write_file 0 1 1280 450
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_write_file
//       Access: Published, Virtual
//  Description: Opens the file for writing.  Returns a newly
//               allocated ostream on success (which you should
//               eventually delete when you are done writing).
//               Returns NULL on failure.
////////////////////////////////////////////////////////////////////
77
virtual ostream *VirtualFile::open_write_file(bool auto_wrap, bool truncate);

2629 16 open_append_file 0 6 2856 29 VirtualFile::open_append_file 0 1 1281 452
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_append_file
//       Access: Published, Virtual
//  Description: Works like open_write_file(), but the file is opened
//               in append mode.  Like open_write_file, the returned
//               pointer should eventually be passed to
//               close_write_file().
////////////////////////////////////////////////////////////////////
53
virtual ostream *VirtualFile::open_append_file(void);

2630 16 close_write_file 0 6 2856 29 VirtualFile::close_write_file 0 1 1282 521
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::close_write_file
//       Access: Published
//  Description: Closes a file opened by a previous call to
//               open_write_file().  This really just deletes the
//               ostream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
////////////////////////////////////////////////////////////////////
60
virtual void VirtualFile::close_write_file(ostream *stream);

2631 20 open_read_write_file 0 6 2856 33 VirtualFile::open_read_write_file 0 1 1283 456
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_read_write_file
//       Access: Published, Virtual
//  Description: Opens the file for writing.  Returns a newly
//               allocated iostream on success (which you should
//               eventually delete when you are done writing).
//               Returns NULL on failure.
////////////////////////////////////////////////////////////////////
67
virtual iostream *VirtualFile::open_read_write_file(bool truncate);

2632 21 open_read_append_file 0 6 2856 34 VirtualFile::open_read_append_file 0 1 1284 472
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_read_append_file
//       Access: Published, Virtual
//  Description: Works like open_read_write_file(), but the file is opened
//               in append mode.  Like open_read_write_file, the returned
//               pointer should eventually be passed to
//               close_read_write_file().
////////////////////////////////////////////////////////////////////
59
virtual iostream *VirtualFile::open_read_append_file(void);

2633 21 close_read_write_file 0 6 2856 34 VirtualFile::close_read_write_file 0 1 1285 532
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::close_read_write_file
//       Access: Published
//  Description: Closes a file opened by a previous call to
//               open_read_write_file().  This really just deletes the
//               iostream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
////////////////////////////////////////////////////////////////////
66
virtual void VirtualFile::close_read_write_file(iostream *stream);

2634 13 get_file_size 0 6 2856 26 VirtualFile::get_file_size 0 2 1286 1287 853
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_file_size
//       Access: Published, Virtual
//  Description: Returns the current size on disk (or wherever it is)
//               of the already-open file.  Pass in the stream that
//               was returned by open_read_file(); some
//               implementations may require this stream to determine
//               the size.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_file_size
//       Access: Published, Virtual
//  Description: Returns the current size on disk (or wherever it is)
//               of the file before it has been opened.
////////////////////////////////////////////////////////////////////
114
virtual int VirtualFile::get_file_size(istream *stream) const;
virtual int VirtualFile::get_file_size(void) const;

2635 13 get_timestamp 0 6 2856 26 VirtualFile::get_timestamp 0 1 1288 776
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_timestamp
//       Access: Published, Virtual
//  Description: Returns a time_t value that represents the time the
//               file was last modified, to within whatever precision
//               the operating system records this information (on a
//               Windows95 system, for instance, this may only be
//               accurate to within 2 seconds).
//
//               If the timestamp cannot be determined, either because
//               it is not supported by the operating system or
//               because there is some error (such as file not found),
//               returns 0.
////////////////////////////////////////////////////////////////////
60
virtual unsigned int VirtualFile::get_timestamp(void) const;

2636 15 get_system_info 0 6 2856 28 VirtualFile::get_system_info 0 1 1289 629
////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_system_info
//       Access: Published, Virtual
//  Description: Populates the SubfileInfo structure with the data
//               representing where the file actually resides on disk,
//               if this is knowable.  Returns true if the file might
//               reside on disk, and the info is populated, or false
//               if it does not (or it is not known where the file
//               resides), in which case the info is meaningless.
////////////////////////////////////////////////////////////////////
61
virtual bool VirtualFile::get_system_info(SubfileInfo &info);

2637 14 get_class_type 0 4 2856 27 VirtualFile::get_class_type 0 1 1290 0
52
static TypeHandle VirtualFile::get_class_type(void);

2638 12 ~VirtualFile 0 4 2856 25 VirtualFile::~VirtualFile 0 0 0
32
VirtualFile::~VirtualFile(void);

2639 14 get_class_type 0 4 2857 36 VirtualFileComposite::get_class_type 0 1 1291 0
61
static TypeHandle VirtualFileComposite::get_class_type(void);

2640 21 ~VirtualFileComposite 0 4 2857 43 VirtualFileComposite::~VirtualFileComposite 0 0 0
50
VirtualFileComposite::~VirtualFileComposite(void);

2641 15 get_file_system 0 4 2858 33 VirtualFileMount::get_file_system 0 1 1292 304
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::get_file_system
//       Access: Public
//  Description: Returns the file system this mount object is attached
//               to.
////////////////////////////////////////////////////////////////////
72
inline VirtualFileSystem *VirtualFileMount::get_file_system(void) const;

2642 15 get_mount_point 0 4 2858 33 VirtualFileMount::get_mount_point 0 1 1293 410
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::get_mount_point
//       Access: Public
//  Description: Returns the name of the directory within the virtual
//               file system that this mount object is attached to.
//               This directory name will end with a slash.
////////////////////////////////////////////////////////////////////
69
inline Filename const &VirtualFileMount::get_mount_point(void) const;

2643 15 get_mount_flags 0 4 2858 33 VirtualFileMount::get_mount_flags 0 1 1294 333
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::get_mount_flags
//       Access: Public
//  Description: Returns the set of flags passed by the user to the
//               VirtualFileSystem::mount() command.
////////////////////////////////////////////////////////////////////
57
inline int VirtualFileMount::get_mount_flags(void) const;

2644 6 output 0 6 2858 24 VirtualFileMount::output 0 1 1295 230
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::output
//       Access: Public, Virtual
//  Description: 
////////////////////////////////////////////////////////////////////
58
virtual void VirtualFileMount::output(ostream &out) const;

2645 5 write 0 6 2858 23 VirtualFileMount::write 0 1 1296 229
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::write
//       Access: Public, Virtual
//  Description: 
////////////////////////////////////////////////////////////////////
57
virtual void VirtualFileMount::write(ostream &out) const;

2646 14 get_class_type 0 4 2858 32 VirtualFileMount::get_class_type 0 1 1297 0
57
static TypeHandle VirtualFileMount::get_class_type(void);

2647 25 VirtualFileMountMultifile 0 4 2859 52 VirtualFileMountMultifile::VirtualFileMountMultifile 0 1 1298 736
// Filename: virtualFileMountMultifile.I
// Created by:  drose (03Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountMultifile::Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
82
inline VirtualFileMountMultifile::VirtualFileMountMultifile(Multifile *multifile);

2648 13 get_multifile 0 4 2859 40 VirtualFileMountMultifile::get_multifile 0 1 1299 319
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountMultifile::get_multifile
//       Access: Public
//  Description: Returns the Multifile pointer that this mount object
//               is based on.
////////////////////////////////////////////////////////////////////
71
inline Multifile *VirtualFileMountMultifile::get_multifile(void) const;

2649 14 get_class_type 0 4 2859 41 VirtualFileMountMultifile::get_class_type 0 1 1300 0
66
static TypeHandle VirtualFileMountMultifile::get_class_type(void);

2650 23 VirtualFileMountRamdisk 0 4 2860 48 VirtualFileMountRamdisk::VirtualFileMountRamdisk 0 1 1301 233
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountRamdisk::Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
55
VirtualFileMountRamdisk::VirtualFileMountRamdisk(void);

2651 14 get_class_type 0 4 2860 39 VirtualFileMountRamdisk::get_class_type 0 1 1302 0
64
static TypeHandle VirtualFileMountRamdisk::get_class_type(void);

2652 24 ~VirtualFileMountRamdisk 0 4 2860 49 VirtualFileMountRamdisk::~VirtualFileMountRamdisk 0 0 0
56
VirtualFileMountRamdisk::~VirtualFileMountRamdisk(void);

2653 22 VirtualFileMountSystem 0 4 2861 46 VirtualFileMountSystem::VirtualFileMountSystem 0 1 1303 730
// Filename: virtualFileMountSystem.I
// Created by:  drose (03Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountSystem::Constructor
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
89
inline VirtualFileMountSystem::VirtualFileMountSystem(Filename const &physical_filename);

2654 21 get_physical_filename 0 4 2861 45 VirtualFileMountSystem::get_physical_filename 0 1 1304 357
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountSystem::get_physical_filename
//       Access: Public
//  Description: Returns the name of the source file on the OS
//               filesystem of the directory or file that is mounted.
////////////////////////////////////////////////////////////////////
81
inline Filename const &VirtualFileMountSystem::get_physical_filename(void) const;

2655 14 get_class_type 0 4 2861 38 VirtualFileMountSystem::get_class_type 0 1 1305 0
63
static TypeHandle VirtualFileMountSystem::get_class_type(void);

2656 23 ~VirtualFileMountSystem 0 4 2861 47 VirtualFileMountSystem::~VirtualFileMountSystem 0 0 0
54
VirtualFileMountSystem::~VirtualFileMountSystem(void);

2657 9 get_mount 0 4 2862 28 VirtualFileSimple::get_mount 0 1 1306 312
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSimple::get_mount
//       Access: Published, Virtual
//  Description: Returns the VirtualFileMount this file is associated
//               with.
////////////////////////////////////////////////////////////////////
66
inline VirtualFileMount *VirtualFileSimple::get_mount(void) const;

2658 19 is_implicit_pz_file 0 4 2862 38 VirtualFileSimple::is_implicit_pz_file 0 1 1307 429
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSimple::is_implicit_pz_file
//       Access: Published
//  Description: Returns true if this file is a .pz file that should
//               be implicitly decompressed on load, or false if it is
//               not a .pz file or if it should not be decompressed.
////////////////////////////////////////////////////////////////////
63
inline bool VirtualFileSimple::is_implicit_pz_file(void) const;

2659 14 get_class_type 0 4 2862 33 VirtualFileSimple::get_class_type 0 1 1308 0
58
static TypeHandle VirtualFileSimple::get_class_type(void);

2660 18 ~VirtualFileSimple 0 4 2862 37 VirtualFileSimple::~VirtualFileSimple 0 0 0
44
VirtualFileSimple::~VirtualFileSimple(void);

2661 13 TemporaryFile 0 4 2863 28 TemporaryFile::TemporaryFile 0 1 1309 714
// Filename: temporaryFile.I
// Created by:  drose (23Jun11)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: TemporaryFile::Constructor
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
62
inline TemporaryFile::TemporaryFile(Filename const &filename);

2662 14 get_class_type 0 4 2863 29 TemporaryFile::get_class_type 0 1 1310 0
54
static TypeHandle TemporaryFile::get_class_type(void);

2663 17 IDecompressStream 0 4 2864 36 IDecompressStream::IDecompressStream 0 2 1311 1312 937
// Filename: zStream.I
// Created by:  drose (05Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: IDecompressStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: IDecompressStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
130
inline IDecompressStream::IDecompressStream(void);
inline IDecompressStream::IDecompressStream(istream *source, bool owns_source);

2664 4 open 0 4 2864 23 IDecompressStream::open 0 1 1313 220
////////////////////////////////////////////////////////////////////
//     Function: IDecompressStream::open
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
85
inline IDecompressStream &IDecompressStream::open(istream *source, bool owns_source);

2665 5 close 0 4 2864 24 IDecompressStream::close 0 1 1314 342
////////////////////////////////////////////////////////////////////
//     Function: IDecompressStream::close
//       Access: Public
//  Description: Resets the ZStream to empty, but does not actually
//               close the source istream unless owns_source was true.
////////////////////////////////////////////////////////////////////
57
inline IDecompressStream &IDecompressStream::close(void);

2666 18 ~IDecompressStream 0 4 2864 37 IDecompressStream::~IDecompressStream 0 0 0
44
IDecompressStream::~IDecompressStream(void);

2667 15 OCompressStream 0 4 2865 32 OCompressStream::OCompressStream 0 3 1315 1316 1317 450
////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::Constructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
147
inline OCompressStream::OCompressStream(void);
inline OCompressStream::OCompressStream(ostream *dest, bool owns_dest, int compression_level = (6));

2668 4 open 0 4 2865 21 OCompressStream::open 0 2 1318 1319 218
////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::open
//       Access: Public
//  Description: 
////////////////////////////////////////////////////////////////////
106
inline OCompressStream &OCompressStream::open(ostream *dest, bool owns_dest, int compression_level = (6));

2669 5 close 0 4 2865 22 OCompressStream::close 0 1 1320 336
////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::close
//       Access: Public
//  Description: Resets the ZStream to empty, but does not actually
//               close the dest ostream unless owns_dest was true.
////////////////////////////////////////////////////////////////////
53
inline OCompressStream &OCompressStream::close(void);

2670 16 ~OCompressStream 0 4 2865 33 OCompressStream::~OCompressStream 0 0 0
40
OCompressStream::~OCompressStream(void);

2671 13 get_num_files 0 4 2866 30 VirtualFileList::get_num_files 0 1 1321 270
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::get_num_files
//       Access: Published
//  Description: Returns the number of files in the list.
////////////////////////////////////////////////////////////////////
54
inline int VirtualFileList::get_num_files(void) const;

2672 8 get_file 0 4 2866 25 VirtualFileList::get_file 0 1 1322 258
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::get_file
//       Access: Published
//  Description: Returns the nth file in the list.
////////////////////////////////////////////////////////////////////
59
inline VirtualFile *VirtualFileList::get_file(int n) const;

2673 11 operator [] 0 4 2866 28 VirtualFileList::operator [] 0 1 1323 261
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::operator []
//       Access: Published
//  Description: Returns the nth file in the list.
////////////////////////////////////////////////////////////////////
62
inline VirtualFile *VirtualFileList::operator [](int n) const;

2674 4 size 0 4 2866 21 VirtualFileList::size 0 1 1324 261
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::size
//       Access: Published
//  Description: Returns the number of files in the list.
////////////////////////////////////////////////////////////////////
45
inline int VirtualFileList::size(void) const;

2675 11 operator += 0 4 2866 28 VirtualFileList::operator += 0 1 1325 276
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::operator +=
//       Access: Published
//  Description: Appends the other list onto the end of this one.
////////////////////////////////////////////////////////////////////
71
inline void VirtualFileList::operator +=(VirtualFileList const &other);

2676 10 operator + 0 4 2866 27 VirtualFileList::operator + 0 1 1326 318
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::operator +
//       Access: Published
//  Description: Returns a VirtualFileList representing the
//               concatenation of the two lists.
////////////////////////////////////////////////////////////////////
87
inline VirtualFileList VirtualFileList::operator +(VirtualFileList const &other) const;

2677 17 VirtualFileSystem 0 4 2867 36 VirtualFileSystem::VirtualFileSystem 0 1 1327 230
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::Constructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
43
VirtualFileSystem::VirtualFileSystem(void);

2678 18 ~VirtualFileSystem 0 4 2867 37 VirtualFileSystem::~VirtualFileSystem 0 0 229
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::Destructor
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
44
VirtualFileSystem::~VirtualFileSystem(void);

2679 5 mount 0 4 2867 24 VirtualFileSystem::mount 0 4 1328 1329 1330 1331 2271
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount
//       Access: Published
//  Description: Mounts the indicated Multifile at the given mount
//               point.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount
//       Access: Published
//  Description: Mounts the indicated system file or directory at the
//               given mount point.  If the named file is a directory,
//               mounts the directory.  If the named file is a
//               Multifile, mounts it as a Multifile.  Returns true on
//               success, false on failure.
//
//               A given system directory may be mounted to multiple
//               different mount point, and the same mount point may
//               share multiple system directories.  In the case of
//               ambiguities (that is, two different files with
//               exactly the same full pathname), the most-recently
//               mounted system wins.
//
//               The filename specified as the first parameter must
//               refer to a real, physical filename on disk; it cannot
//               be a virtual file already appearing within the vfs
//               filespace.  However, it is possible to mount such a
//               file; see mount_loop() for this.
////
//               Note that a mounted VirtualFileSystem directory is
//               fully case-sensitive, unlike the native Windows file
//               system, so you must refer to files within the virtual
//               file system with exactly the right case.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount
//       Access: Published
//  Description: Adds the given VirtualFileMount object to the mount
//               list.  This is a lower-level function that the other
//               flavors of mount(); it requires you to create a
//               VirtualFileMount object specifically.
////////////////////////////////////////////////////////////////////
339
bool VirtualFileSystem::mount(Multifile *multifile, Filename const &mount_point, int flags);
bool VirtualFileSystem::mount(Filename const &physical_filename, Filename const &mount_point, int flags, basic_string< char > const &password = (""));
bool VirtualFileSystem::mount(VirtualFileMount *mount, Filename const &mount_point, int flags);

2680 10 mount_loop 0 4 2867 29 VirtualFileSystem::mount_loop 0 2 1332 1333 971
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount_loop
//       Access: Published
//  Description: This is similar to mount(), but it receives the name
//               of a Multifile that already appears within the
//               virtual file system.  It can be used to mount a
//               Multifile that is itself hosted within a
//               virtually-mounted Multifile.
//
//               This interface can also be used to mount physical
//               files (that appear within the virtual filespace), but
//               it cannot be used to mount directories.  Use mount()
//               if you need to mount a directory.
//
//               Note that there is additional overhead, in the form
//               of additional buffer copies of the data, for
//               recursively mounting a multifile like this.
////////////////////////////////////////////////////////////////////
154
bool VirtualFileSystem::mount_loop(Filename const &virtual_filename, Filename const &mount_point, int flags, basic_string< char > const &password = (""));

2681 7 unmount 0 4 2867 26 VirtualFileSystem::unmount 0 3 1334 1335 1336 1159
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount
//       Access: Published
//  Description: Unmounts all appearances of the indicated Multifile
//               from the file system.  Returns the number of
//               appearances unmounted.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount
//       Access: Published
//  Description: Unmounts all appearances of the indicated directory
//               name or multifile name from the file system.  Returns
//               the number of appearances unmounted.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount
//       Access: Published
//  Description: Unmounts the indicated VirtualFileMount object
//               from the file system.  Returns the number of
//               appearances unmounted.
////////////////////////////////////////////////////////////////////
177
int VirtualFileSystem::unmount(Multifile *multifile);
int VirtualFileSystem::unmount(Filename const &physical_filename);
int VirtualFileSystem::unmount(VirtualFileMount *mount);

2682 13 unmount_point 0 4 2867 32 VirtualFileSystem::unmount_point 0 1 1337 388
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount_point
//       Access: Published
//  Description: Unmounts all systems attached to the given mount
//               point from the file system.  Returns the number of
//               appearances unmounted.
////////////////////////////////////////////////////////////////////
66
int VirtualFileSystem::unmount_point(Filename const &mount_point);

2683 11 unmount_all 0 4 2867 30 VirtualFileSystem::unmount_all 0 1 1338 329
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount_all
//       Access: Published
//  Description: Unmounts all files from the file system.  Returns the
//               number of systems unmounted.
////////////////////////////////////////////////////////////////////
41
int VirtualFileSystem::unmount_all(void);

2684 14 get_num_mounts 0 4 2867 33 VirtualFileSystem::get_num_mounts 0 1 1339 304
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_num_mounts
//       Access: Published
//  Description: Returns the number of individual mounts in the
//               system.
////////////////////////////////////////////////////////////////////
50
int VirtualFileSystem::get_num_mounts(void) const;

2685 9 get_mount 0 4 2867 28 VirtualFileSystem::get_mount 0 1 1340 264
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_mount
//       Access: Published
//  Description: Returns the nth mount in the system.
////////////////////////////////////////////////////////////////////
72
PointerTo< VirtualFileMount > VirtualFileSystem::get_mount(int n) const;

2686 5 chdir 0 4 2867 24 VirtualFileSystem::chdir 0 1 1341 429
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::chdir
//       Access: Published
//  Description: Changes the current directory.  This is used to
//               resolve relative pathnames in get_file() and/or
//               find_file().  Returns true if successful, false
//               otherwise.
////////////////////////////////////////////////////////////////////
61
bool VirtualFileSystem::chdir(Filename const &new_directory);

2687 7 get_cwd 0 4 2867 26 VirtualFileSystem::get_cwd 0 1 1342 275
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_cwd
//       Access: Published
//  Description: Returns the current directory name.  See chdir().
////////////////////////////////////////////////////////////////////
48
Filename VirtualFileSystem::get_cwd(void) const;

2688 14 make_directory 0 4 2867 33 VirtualFileSystem::make_directory 0 1 1343 544
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::make_directory
//       Access: Published
//  Description: Attempts to create a directory within the file
//               system.  Returns true on success, false on failure
//               (for instance, because the parent directory does not
//               exist, or is read-only).  If the directory already
//               existed prior to this call, returns true.
////////////////////////////////////////////////////////////////////
65
bool VirtualFileSystem::make_directory(Filename const &filename);

2689 19 make_directory_full 0 4 2867 38 VirtualFileSystem::make_directory_full 0 1 1344 424
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::make_directory_full
//       Access: Published
//  Description: Attempts to create a directory within the file
//               system.  Will also create any intervening directories
//               needed.  Returns true on success, false on failure.
////////////////////////////////////////////////////////////////////
70
bool VirtualFileSystem::make_directory_full(Filename const &filename);

2690 8 get_file 0 4 2867 27 VirtualFileSystem::get_file 0 2 1345 1346 902
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_file
//       Access: Published
//  Description: Looks up the file by the indicated name in the file
//               system.  Returns a VirtualFile pointer representing
//               the file if it is found, or NULL if it is not.
//
//               If status_only is true, the file will be checked for
//               existence and length and so on, but the returned
//               file's contents cannot be read.  This is an
//               optimization which is especially important for
//               certain mount types, for instance HTTP, for which
//               opening a file to determine its status is
//               substantially less expensive than opening it to read
//               its contents.
////////////////////////////////////////////////////////////////////
109
PointerTo< VirtualFile > VirtualFileSystem::get_file(Filename const &filename, bool status_only = (0)) const;

2691 11 create_file 0 4 2867 30 VirtualFileSystem::create_file 0 1 1347 592
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::create_file
//       Access: Published
//  Description: Attempts to create a file by the indicated name in
//               the filesystem, if possible, and returns it.  If a
//               file by this name already exists, returns the same
//               thing as get_file().  If the filename is located
//               within a read-only directory, or the directory
//               doesn't exist, returns NULL.
////////////////////////////////////////////////////////////////////
82
PointerTo< VirtualFile > VirtualFileSystem::create_file(Filename const &filename);

2692 9 find_file 0 4 2867 28 VirtualFileSystem::find_file 0 2 1348 1349 436
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::find_file
//       Access: Published
//  Description: Uses the indicated search path to find the file
//               within the file system.  Returns the first occurrence
//               of the file found, or NULL if the file cannot be
//               found.
////////////////////////////////////////////////////////////////////
141
PointerTo< VirtualFile > VirtualFileSystem::find_file(Filename const &filename, DSearchPath const &searchpath, bool status_only = (0)) const;

2693 11 delete_file 0 4 2867 30 VirtualFileSystem::delete_file 0 1 1350 467
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::delete_file
//       Access: Public
//  Description: Attempts to delete the indicated file or directory.
//               This can remove a single file or an empty directory.
//               It will not remove a nonempty directory.  Returns
//               true on success, false on failure.
////////////////////////////////////////////////////////////////////
62
bool VirtualFileSystem::delete_file(Filename const &filename);

2694 11 rename_file 0 4 2867 30 VirtualFileSystem::rename_file 0 1 1351 980
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::rename_file
//       Access: Public
//  Description: Attempts to move or rename the indicated file or
//               directory.  If the original file is an ordinary file,
//               it will quietly replace any already-existing file in
//               the new filename (but not a directory).  If the
//               original file is a directory, the new filename must
//               not already exist.
//
//               If the file is a directory, the new filename must be
//               within the same mount point.  If the file is an
//               ordinary file, the new filename may be anywhere; but
//               if it is not within the same mount point then the
//               rename operation is automatically performed as a
//               two-step copy-and-delete operation.
////////////////////////////////////////////////////////////////////
97
bool VirtualFileSystem::rename_file(Filename const &orig_filename, Filename const &new_filename);

2695 9 copy_file 0 4 2867 28 VirtualFileSystem::copy_file 0 1 1352 377
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::copy_file
//       Access: Public
//  Description: Attempts to copy the contents of the indicated file
//               to the indicated file.  Returns true on success,
//               false on failure.
////////////////////////////////////////////////////////////////////
95
bool VirtualFileSystem::copy_file(Filename const &orig_filename, Filename const &new_filename);

2696 16 resolve_filename 0 4 2867 35 VirtualFileSystem::resolve_filename 0 2 1353 1354 440
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::resolve_filename
//       Access: Public
//  Description: Searches the given search path for the filename.  If
//               it is found, updates the filename to the full
//               pathname found and returns true; otherwise, returns
//               false.
////////////////////////////////////////////////////////////////////
160
bool VirtualFileSystem::resolve_filename(Filename &filename, DSearchPath const &searchpath, basic_string< char > const &default_extension = ((string()))) const;

2697 14 find_all_files 0 4 2867 33 VirtualFileSystem::find_all_files 0 1 1355 672
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::find_all_files
//       Access: Public
//  Description: Searches all the directories in the search list for
//               the indicated file, in order.  Fills up the results
//               list with *all* of the matching filenames found, if
//               any.  Returns the number of matches found.
//
//               It is the responsibility of the the caller to clear
//               the results list first; otherwise, the newly-found
//               files will be appended to the list.
////////////////////////////////////////////////////////////////////
132
int VirtualFileSystem::find_all_files(Filename const &filename, DSearchPath const &searchpath, DSearchPath::Results &results) const;

2698 6 exists 0 4 2867 25 VirtualFileSystem::exists 0 1 1356 795
// Filename: virtualFileSystem.I
// Created by:  drose (03Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::exists
//       Access: Published
//  Description: Convenience function; returns true if the named file
//               exists.
////////////////////////////////////////////////////////////////////
70
inline bool VirtualFileSystem::exists(Filename const &filename) const;

2699 12 is_directory 0 4 2867 31 VirtualFileSystem::is_directory 0 1 1357 327
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::is_directory
//       Access: Published
//  Description: Convenience function; returns true if the named file
//               exists and is a directory.
////////////////////////////////////////////////////////////////////
76
inline bool VirtualFileSystem::is_directory(Filename const &filename) const;

2700 15 is_regular_file 0 4 2867 34 VirtualFileSystem::is_regular_file 0 1 1358 333
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::is_regular_file
//       Access: Published
//  Description: Convenience function; returns true if the named file
//               exists and is a regular file.
////////////////////////////////////////////////////////////////////
79
inline bool VirtualFileSystem::is_regular_file(Filename const &filename) const;

2701 14 scan_directory 0 4 2867 33 VirtualFileSystem::scan_directory 0 1 1359 528
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::scan_directory
//       Access: Published
//  Description: If the file represents a directory (that is,
//               is_directory() returns true), this returns the list
//               of files within the directory at the current time.
//               Returns NULL if the file is not a directory or if the
//               directory cannot be read.
////////////////////////////////////////////////////////////////////
102
inline PointerTo< VirtualFileList > VirtualFileSystem::scan_directory(Filename const &filename) const;

2702 2 ls 0 4 2867 21 VirtualFileSystem::ls 0 1 1360 307
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::ls
//       Access: Published
//  Description: Convenience function; lists the files within the
//               indicated directory.
////////////////////////////////////////////////////////////////////
66
inline void VirtualFileSystem::ls(Filename const &filename) const;

2703 6 ls_all 0 4 2867 25 VirtualFileSystem::ls_all 0 1 1361 362
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::ls_all
//       Access: Published
//  Description: Convenience function; lists the files within the
//               indicated directory, and all files below,
//               recursively.
////////////////////////////////////////////////////////////////////
70
inline void VirtualFileSystem::ls_all(Filename const &filename) const;

2704 5 write 0 4 2867 24 VirtualFileSystem::write 0 1 1362 303
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::write
//       Access: Published
//  Description: Print debugging information.
//               (e.g. from Python or gdb prompt).
////////////////////////////////////////////////////////////////////
50
void VirtualFileSystem::write(ostream &out) const;

2705 14 get_global_ptr 0 4 2867 33 VirtualFileSystem::get_global_ptr 0 1 1363 773
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_global_ptr
//       Access: Published, Static
//  Description: Returns the default global VirtualFileSystem.  You
//               may create your own personal VirtualFileSystem
//               objects and use them for whatever you like, but Panda
//               will attempt to load models and stuff from this
//               default object.
//
//               Initially, the global VirtualFileSystem is set up to
//               mount the OS filesystem to root; i.e. it is
//               equivalent to the OS filesystem.  This may be
//               subsequently adjusted by the user.
////////////////////////////////////////////////////////////////////
66
static VirtualFileSystem *VirtualFileSystem::get_global_ptr(void);

2706 9 read_file 0 4 2867 28 VirtualFileSystem::read_file 0 1 1364 2166
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::read_file
//       Access: Published
//  Description: Convenience function; returns the entire contents of
//               the indicated file as a string.
//
//               If auto_unwrap is true, an explicitly-named .pz file
//               is automatically decompressed and the decompressed
//               contents are returned.  This is different than
//               vfs-implicit-pz, which will automatically decompress
//               a file if the extension .pz is *not* given.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::read_file
//       Access: Public
//  Description: Convenience function; fills the string up with the
//               data from the indicated file, if it exists and can be
//               read.  Returns true on success, false otherwise.
//
//               If auto_unwrap is true, an explicitly-named .pz file
//               is automatically decompressed and the decompressed
//               contents are returned.  This is different than
//               vfs-implicit-pz, which will automatically decompress
//               a file if the extension .pz is *not* given.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::read_file
//       Access: Public
//  Description: Convenience function; fills the pvector up with the
//               data from the indicated file, if it exists and can be
//               read.  Returns true on success, false otherwise.
//
//               If auto_unwrap is true, an explicitly-named .pz file
//               is automatically decompressed and the decompressed
//               contents are returned.  This is different than
//               vfs-implicit-pz, which will automatically decompress
//               a file if the extension .pz is *not* given.
////////////////////////////////////////////////////////////////////
89
PyObject *VirtualFileSystem::read_file(Filename const &filename, bool auto_unwrap) const;

2707 14 open_read_file 0 4 2867 33 VirtualFileSystem::open_read_file 0 1 1365 750
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_read_file
//       Access: Published
//  Description: Convenience function; returns a newly allocated
//               istream if the file exists and can be read, or NULL
//               otherwise.  Does not return an invalid istream.
//
//               If auto_unwrap is true, an explicitly-named .pz file
//               is automatically decompressed and the decompressed
//               contents are returned.  This is different than
//               vfs-implicit-pz, which will automatically decompress
//               a file if the extension .pz is *not* given.
////////////////////////////////////////////////////////////////////
93
istream *VirtualFileSystem::open_read_file(Filename const &filename, bool auto_unwrap) const;

2708 15 close_read_file 0 4 2867 34 VirtualFileSystem::close_read_file 0 1 1366 533
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::close_read_file
//       Access: Published, Static
//  Description: Closes a file opened by a previous call to
//               open_read_file().  This really just deletes the
//               istream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
////////////////////////////////////////////////////////////////////
64
static void VirtualFileSystem::close_read_file(istream *stream);

2709 10 write_file 0 4 2867 29 VirtualFileSystem::write_file 0 1 1367 926
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::write_file
//       Access: Published
//  Description: Convenience function; writes the entire contents of
//               the indicated file as a string.
//
//               If auto_wrap is true, an explicitly-named .pz file
//               is automatically compressed while writing.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::write_file
//       Access: Public
//  Description: Convenience function; writes the entire contents of
//               the indicated file as a block of data.
//
//               If auto_wrap is true, an explicitly-named .pz file
//               is automatically compressed while writing.
////////////////////////////////////////////////////////////////////
98
PyObject *VirtualFileSystem::write_file(Filename const &filename, PyObject *data, bool auto_wrap);

2710 15 open_write_file 0 4 2867 34 VirtualFileSystem::open_write_file 0 1 1368 658
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_write_file
//       Access: Published
//  Description: Convenience function; returns a newly allocated
//               ostream if the file exists and can be written, or
//               NULL otherwise.  Does not return an invalid ostream.
//
//               If auto_wrap is true, an explicitly-named .pz file is
//               automatically compressed while writing.  If truncate
//               is true, the file is truncated to zero length before
//               writing.
////////////////////////////////////////////////////////////////////
101
ostream *VirtualFileSystem::open_write_file(Filename const &filename, bool auto_wrap, bool truncate);

2711 16 open_append_file 0 4 2867 35 VirtualFileSystem::open_append_file 0 1 1369 449
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_append_file
//       Access: Published
//  Description: Works like open_write_file(), but the file is opened
//               in append mode.  Like open_write_file, the returned
//               pointer should eventually be passed to
//               close_write_file().
////////////////////////////////////////////////////////////////////
71
ostream *VirtualFileSystem::open_append_file(Filename const &filename);

2712 16 close_write_file 0 4 2867 35 VirtualFileSystem::close_write_file 0 1 1370 535
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::close_write_file
//       Access: Published, Static
//  Description: Closes a file opened by a previous call to
//               open_write_file().  This really just deletes the
//               ostream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
////////////////////////////////////////////////////////////////////
65
static void VirtualFileSystem::close_write_file(ostream *stream);

2713 20 open_read_write_file 0 4 2867 39 VirtualFileSystem::open_read_write_file 0 1 1371 425
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_read_write_file
//       Access: Published
//  Description: Convenience function; returns a newly allocated
//               iostream if the file exists and can be written, or
//               NULL otherwise.  Does not return an invalid iostream.
////////////////////////////////////////////////////////////////////
91
iostream *VirtualFileSystem::open_read_write_file(Filename const &filename, bool truncate);

2714 21 open_read_append_file 0 4 2867 40 VirtualFileSystem::open_read_append_file 0 1 1372 469
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_read_append_file
//       Access: Published
//  Description: Works like open_read_write_file(), but the file is opened
//               in append mode.  Like open_read_write_file, the returned
//               pointer should eventually be passed to
//               close_read_write_file().
////////////////////////////////////////////////////////////////////
77
iostream *VirtualFileSystem::open_read_append_file(Filename const &filename);

2715 21 close_read_write_file 0 4 2867 40 VirtualFileSystem::close_read_write_file 0 1 1373 546
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::close_read_write_file
//       Access: Published, Static
//  Description: Closes a file opened by a previous call to
//               open_read_write_file().  This really just deletes the
//               iostream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
////////////////////////////////////////////////////////////////////
71
static void VirtualFileSystem::close_read_write_file(iostream *stream);

2716 13 get_long_time 0 4 2869 24 TrueClock::get_long_time 0 1 1374 454
// get_long_time() returns the most accurate timer we have over a
// long interval.  It may not be very precise for measuring short
// intervals, but it should not drift substantially over the long
// haul.

////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_long_time, Win32 implementation
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
38
double TrueClock::get_long_time(void);

2717 14 get_short_time 0 4 2869 25 TrueClock::get_short_time 0 1 1375 458
// get_short_time() returns the most precise timer we have over a
// short interval.  It may tend to drift over the long haul, but it
// should have lots of digits to measure short intervals very
// precisely.

////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_short_time, Win32 implementation
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
46
inline double TrueClock::get_short_time(void);

2718 18 get_short_raw_time 0 4 2869 29 TrueClock::get_short_raw_time 0 1 1376 399
// get_short_raw_time() is like get_short_time(), but does not apply
// any corrections (e.g. paranoid-clock) to the result returned by
// the OS.

////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_short_raw_time, Win32 implementation
//       Access: Published
//  Description: 
////////////////////////////////////////////////////////////////////
43
double TrueClock::get_short_raw_time(void);

2719 15 get_error_count 0 4 2869 26 TrueClock::get_error_count 0 1 1377 675
////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_error_count
//       Access: Published
//  Description: Returns the number of clock errors that have
//               been detected.  Each time a clock error is detected,
//               in which the value returned by either of the above
//               methods is suspect, the value returned by this method
//               will be incremented.  Applications can monitor this
//               value and react, for instance, by resynchronizing
//               their clocks each time this value changes.
////////////////////////////////////////////////////////////////////
50
inline int TrueClock::get_error_count(void) const;

2720 14 get_global_ptr 0 4 2869 25 TrueClock::get_global_ptr 0 1 1378 309
////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_global_ptr
//       Access: Published, Static
//  Description: Returns a pointer to the one TrueClock object in
//               the world.
////////////////////////////////////////////////////////////////////
57
static inline TrueClock *TrueClock::get_global_ptr(void);

2721 16 set_cpu_affinity 0 4 2869 27 TrueClock::set_cpu_affinity 0 1 1379 0
58
bool TrueClock::set_cpu_affinity(unsigned int mask) const;

2722 9 Patchfile 0 4 2870 20 Patchfile::Patchfile 0 2 1380 1381 527
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::Constructor
//       Access: Public
//  Description: Create a patch file and initializes internal data
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Patchfile::Constructor
//       Access: Public
//  Description: Create patch file with buffer to patch
////////////////////////////////////////////////////////////////////
77
Patchfile::Patchfile(void);
Patchfile::Patchfile(PointerTo< Buffer > buffer);

2723 10 ~Patchfile 0 4 2870 21 Patchfile::~Patchfile 0 0 217
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::Destructor
//       Access: Public
//  Description:
////////////////////////////////////////////////////////////////////
28
Patchfile::~Patchfile(void);

2724 5 build 0 4 2870 16 Patchfile::build 0 1 1382 680
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::build
//       Access: Public
//  Description:
//               This implementation uses the "greedy differencing
//               algorithm" described in the masters thesis
//               "Differential Compression: A Generalized Solution
//               for Binary Files" by Randal C. Burns (p.13).
//               For an original file of size M and a new file of
//               size N, this algorithm is O(M) in space and
//               O(M*N) (worst-case) in time.
//               return false on error
////////////////////////////////////////////////////////////////////
82
bool Patchfile::build(Filename file_orig, Filename file_new, Filename patch_name);

2725 11 read_header 0 4 2870 22 Patchfile::read_header 0 1 1383 449
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::read_header
//       Access: Published
//  Description: Opens the patch file for reading, and gets the header
//               information from the file but does not begin to do
//               any real work.  This can be used to query the data
//               stored in the patch.
////////////////////////////////////////////////////////////////////
55
int Patchfile::read_header(Filename const &patch_file);

2726 8 initiate 0 4 2870 19 Patchfile::initiate 0 2 1384 1385 1240
////////////////////////////////////////////////////////////////////
///// PATCH FILE APPLY MEMBER FUNCTIONS
/////
////////////////////
///// NOTE: this patch-application functionality unfortunately has to be
/////       duplicated in the Installer. It is contained in the file
/////       installerApplyPatch.cxx
/////       PLEASE MAKE SURE THAT THAT FILE GETS UPDATED IF ANY OF THIS
/////       LOGIC CHANGES! (i.e. if the patch file format changes)
////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::initiate
//       Access: Published
//  Description: Set up to apply the patch to the file (original
//               file and patch are destroyed in the process).
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Patchfile::initiate
//       Access: Published
//  Description: Set up to apply the patch to the file.  In this form,
//               neither the original file nor the patch file are
//               destroyed.
////////////////////////////////////////////////////////////////////
183
int Patchfile::initiate(Filename const &patch_file, Filename const &file);
int Patchfile::initiate(Filename const &patch_file, Filename const &orig_file, Filename const &target_file);

2727 3 run 0 4 2870 14 Patchfile::run 0 1 1386 660
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::run
//       Access: Published
//  Description: Perform one buffer's worth of patching
//               Returns EU_ok while patching
//               Returns EU_success when done
//               If error happens will return one of:
//               EU_error_abort : Patching has not been initiated
//               EU_error_file_invalid : file is corrupted
//               EU_error_invalid_checksum : incompatible patch file
//               EU_error_write_file_rename : could not rename file
////////////////////////////////////////////////////////////////////
25
int Patchfile::run(void);

2728 5 apply 0 4 2870 16 Patchfile::apply 0 2 1387 1388 788
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::apply
//       Access: Public
//  Description: Patches the entire file in one call
//               returns true on success and false on error
//
//               This version will delete the patch file and overwrite
//               the original file.
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
//     Function: Patchfile::apply
//       Access: Public
//  Description: Patches the entire file in one call
//               returns true on success and false on error
//
//               This version will not delete any files.
////////////////////////////////////////////////////////////////////
155
bool Patchfile::apply(Filename &patch_file, Filename &file);
bool Patchfile::apply(Filename &patch_file, Filename &orig_file, Filename const &target_file);

2729 12 get_progress 0 4 2870 23 Patchfile::get_progress 0 1 1389 893
// Filename: patchfile.I
// Created by:  darren, mike (09Jan97)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
//#include "config_downloader.h"
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_progress
//       Access: Published
//  Description: Returns a value in the range 0..1, representing the
//               amount of progress through the patchfile, during a
//               session.
////////////////////////////////////////////////////////////////////
49
inline float Patchfile::get_progress(void) const;

2730 19 set_allow_multifile 0 4 2870 30 Patchfile::set_allow_multifile 0 1 1390 685
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::set_allow_multifile
//       Access: Published
//  Description: If this flag is set true, the Patchfile will make a
//               special case for patching Panda Multifiles, if
//               detected, and attempt to patch them on a
//               subfile-by-subfile basis.  If this flag is false, the
//               Patchfile will always patch the file on a full-file
//               basis.
//
//               This has effect only when building patches; it is not
//               used for applying patches.
////////////////////////////////////////////////////////////////////
65
inline void Patchfile::set_allow_multifile(bool allow_multifile);

2731 19 get_allow_multifile 0 4 2870 30 Patchfile::get_allow_multifile 0 1 1391 256
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_allow_multifile
//       Access: Published
//  Description: See set_allow_multifile().
////////////////////////////////////////////////////////////////////
49
inline bool Patchfile::get_allow_multifile(void);

2732 20 set_footprint_length 0 4 2870 31 Patchfile::set_footprint_length 0 1 1392 230
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::set_footprint_length
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
56
inline void Patchfile::set_footprint_length(int length);

2733 20 get_footprint_length 0 4 2870 31 Patchfile::get_footprint_length 0 1 1393 230
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_footprint_length
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
49
inline int Patchfile::get_footprint_length(void);

2734 22 reset_footprint_length 0 4 2870 33 Patchfile::reset_footprint_length 0 1 1394 232
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::reset_footprint_length
//       Access: Published
//  Description:
////////////////////////////////////////////////////////////////////
52
inline void Patchfile::reset_footprint_length(void);

2735 15 has_source_hash 0 4 2870 26 Patchfile::has_source_hash 0 1 1395 391
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::has_source_hash
//       Access: Published
//  Description: Returns true if the MD5 hash for the source file is
//               known.  (Some early versions of the patch file did
//               not store this information.)
////////////////////////////////////////////////////////////////////
51
inline bool Patchfile::has_source_hash(void) const;

2736 15 get_source_hash 0 4 2870 26 Patchfile::get_source_hash 0 1 1396 267
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_source_hash
//       Access: Published
//  Description: Returns the MD5 hash for the source file.
////////////////////////////////////////////////////////////////////
61
inline HashVal const &Patchfile::get_source_hash(void) const;

2737 15 get_result_hash 0 4 2870 26 Patchfile::get_result_hash 0 1 1397 310
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_result_hash
//       Access: Published
//  Description: Returns the MD5 hash for the file after the patch has
//               been applied.
////////////////////////////////////////////////////////////////////
61
inline HashVal const &Patchfile::get_result_hash(void) const;

2738 13 password_hash 0 1 0 13 password_hash 0 1 1456 1691
////////////////////////////////////////////////////////////////////
//     Function: password_hash
//       Access: Published
//  Description: Generates a non-reversible hash of a particular
//               length based on an arbitrary password and a random
//               salt.  This is much stronger than the algorithm
//               implemented by the standard Unix crypt().
//
//               The resulting hash can be useful for two primary
//               purposes: (1) the hash may be recorded to disk in
//               lieu of recording plaintext passwords, for validation
//               against a password entered by the user later (which
//               should produce the same hash given a particular
//               salt), or (2) the hash may be used as input to an
//               encryption algorithm that requires a key of a
//               particular length.
//
//               password is the text password provided by a user.
//
//               salt should be a string of arbitrary random bytes (it
//               need not be crypotographically secure, just different
//               for each different hash).
//
//               iters should be a number in the thousands to indicate
//               the number of times the hash algorithm should be
//               applied.  In general, iters should be chosen to make
//               the computation as expensive as it can be and still
//               be tolerable, to reduce the attractiveness of a
//               brute-force attack.
//
//               keylen is the length in bytes of the required key
//               hash.
////////////////////////////////////////////////////////////////////
130
basic_string< char > password_hash(basic_string< char > const &password, basic_string< char > const &salt, int iters, int keylen);

2739 12 ProfileTimer 0 4 2871 26 ProfileTimer::ProfileTimer 0 4 1398 1399 1400 1401 0
144
ProfileTimer::ProfileTimer(char const *name = (0), int maxEntries = (MaxEntriesDefault));
ProfileTimer::ProfileTimer(ProfileTimer const &other);

2740 13 ~ProfileTimer 0 4 2871 27 ProfileTimer::~ProfileTimer 0 0 0
34
ProfileTimer::~ProfileTimer(void);

2741 4 init 0 4 2871 18 ProfileTimer::init 0 2 1402 1403 0
80
void ProfileTimer::init(char const *name, int maxEntries = (MaxEntriesDefault));

2742 2 on 0 4 2871 16 ProfileTimer::on 0 1 1404 472
// Filename: profileTimer.I
// Created by:  
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
28
void ProfileTimer::on(void);

2743 4 mark 0 4 2871 18 ProfileTimer::mark 0 1 1405 0
41
void ProfileTimer::mark(char const *tag);

2744 3 off 0 4 2871 17 ProfileTimer::off 0 2 1406 1407 0
70
void ProfileTimer::off(void);
void ProfileTimer::off(char const *tag);

2745 12 getTotalTime 0 4 2871 26 ProfileTimer::getTotalTime 0 1 1408 110
// Don't call any of the following during timing:
// (Because they are slow, not because anything will break).
46
double ProfileTimer::getTotalTime(void) const;

2746 16 consolidateAllTo 0 4 2871 30 ProfileTimer::consolidateAllTo 0 2 1409 1410 110
// Don't call any of the following during timing:
// (Because they are slow, not because anything will break).
66
static void ProfileTimer::consolidateAllTo(ostream &out = (cout));

2747 13 consolidateTo 0 4 2871 27 ProfileTimer::consolidateTo 0 2 1411 1412 0
62
void ProfileTimer::consolidateTo(ostream &out = (cout)) const;

2748 10 printAllTo 0 4 2871 24 ProfileTimer::printAllTo 0 2 1413 1414 0
60
static void ProfileTimer::printAllTo(ostream &out = (cout));

2749 7 printTo 0 4 2871 21 ProfileTimer::printTo 0 2 1415 1416 0
56
void ProfileTimer::printTo(ostream &out = (cout)) const;

2750 11 was_deleted 0 4 2872 30 WeakPointerToVoid::was_deleted 0 1 1417 327
////////////////////////////////////////////////////////////////////
//     Function: WeakPointerToVoid::was_deleted
//       Access: Published
//  Description: Returns true if the object we are pointing to has
//               been deleted, false otherwise.
////////////////////////////////////////////////////////////////////
55
inline bool WeakPointerToVoid::was_deleted(void) const;

2751 16 is_valid_pointer 0 4 2872 35 WeakPointerToVoid::is_valid_pointer 0 1 1418 328
////////////////////////////////////////////////////////////////////
//     Function: WeakPointerToVoid::is_valid_pointer
//       Access: Published
//  Description: Returns true if the pointer is not null and the
//               object has not been deleted.
////////////////////////////////////////////////////////////////////
60
inline bool WeakPointerToVoid::is_valid_pointer(void) const;

2752 16 set_string_value 0 4 2873 33 WindowsRegistry::set_string_value 0 2 1419 1420 608
////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::set_string_value
//       Access: Published, Static
//  Description: Sets the registry key to the indicated value as a
//               string.  The supplied string value is automatically
//               converted from whatever encoding is set by
//               TextEncoder::set_default_encoding() and written as a
//               Unicode string.  The registry key must already exist
//               prior to calling this function.
////////////////////////////////////////////////////////////////////
193
static bool WindowsRegistry::set_string_value(basic_string< char > const &key, basic_string< char > const &name, basic_string< char > const &value, WindowsRegistry::RegLevel rl = (rl_machine));

2753 13 set_int_value 0 4 2873 30 WindowsRegistry::set_int_value 0 2 1421 1422 400
////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::set_int_value
//       Access: Published, Static
//  Description: Sets the registry key to the indicated value as an
//               integer.  The registry key must already exist prior
//               to calling this function.
////////////////////////////////////////////////////////////////////
166
static bool WindowsRegistry::set_int_value(basic_string< char > const &key, basic_string< char > const &name, int value, WindowsRegistry::RegLevel rl = (rl_machine));

2754 12 get_key_type 0 4 2873 29 WindowsRegistry::get_key_type 0 2 1423 1424 355
////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_key_type
//       Access: Published, Static
//  Description: Returns the type of the indicated key, or T_none if
//               the key is not known or is some unsupported type.
////////////////////////////////////////////////////////////////////
171
static WindowsRegistry::Type WindowsRegistry::get_key_type(basic_string< char > const &key, basic_string< char > const &name, WindowsRegistry::RegLevel rl = (rl_machine));

2755 16 get_string_value 0 4 2873 33 WindowsRegistry::get_string_value 0 2 1425 1426 597
////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_string_value
//       Access: Published, Static
//  Description: Returns the value associated with the indicated
//               registry key, assuming it is a string value.  The
//               string value is automatically encoded using
//               TextEncoder::get_default_encoding().  If the key is
//               not defined or is not a string type value,
//               default_value is returned instead.
////////////////////////////////////////////////////////////////////
217
static basic_string< char > WindowsRegistry::get_string_value(basic_string< char > const &key, basic_string< char > const &name, basic_string< char > const &default_value, WindowsRegistry::RegLevel rl = (rl_machine));

2756 13 get_int_value 0 4 2873 30 WindowsRegistry::get_int_value 0 2 1427 1428 478
////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_int_value
//       Access: Published, Static
//  Description: Returns the value associated with the indicated
//               registry key, assuming it is an integer value.  If
//               the key is not defined or is not an integer type
//               value, default_value is returned instead.
////////////////////////////////////////////////////////////////////
173
static int WindowsRegistry::get_int_value(basic_string< char > const &key, basic_string< char > const &name, int default_value, WindowsRegistry::RegLevel rl = (rl_machine));

2757 16 ~WindowsRegistry 0 4 2873 33 WindowsRegistry::~WindowsRegistry 0 0 0
40
WindowsRegistry::~WindowsRegistry(void);

1456
1 14 Dtool_vDgfAwcZ 0 6 6 2878 0 14 Dtool_vDgfAwcZ 297 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_page
//       Access: Public
//  Description: Returns the page on which this declaration can be
//               found.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2876  
2 14 Dtool_vDgf8SdA 0 6 7 2879 0 14 Dtool_vDgf8SdA 395 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_variable
//       Access: Public
//  Description: Returns the variable that this declaration names.
//               This variable may or may not have been defined by the
//               time the declaration is read.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2876  
3 14 Dtool_vDgf7k1H 0 6 8 2880 0 14 Dtool_vDgf7k1H 452 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_string_value
//       Access: Public
//  Description: Returns the value assigned to this variable.  This is
//               the original one-line text defined for the variable
//               in the .prc file (or passed to
//               ConfigPage::make_declaration()).
//////////////////////////////////////////////////////////////////// 1 4 this 3 2876  
4 14 Dtool_vDgf8tiG 0 4 9 2882 0 14 Dtool_vDgf8tiG 276 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::set_string_value
//       Access: Public
//  Description: Changes the value assigned to this variable.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2881  5 value 1 2880  
5 14 Dtool_vDgf_SDs 0 6 10 2883 0 14 Dtool_vDgf_SDs 405 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_num_words
//       Access: Public
//  Description: Returns the number of words in the declaration's
//               value.  A word is defined as a sequence of
//               non-whitespace characters delimited by whitespace.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2876  
6 14 Dtool_vDgf4Wco 0 6 11 2884 0 14 Dtool_vDgf4Wco 449 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_string_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               string value for the nth word.  This is really the
//               same thing as asking if there are at least n words in
//               the value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
7 14 Dtool_vDgfN7fe 0 6 12 2884 0 14 Dtool_vDgfN7fe 329 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_bool_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               boolean value for the nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
8 14 Dtool_vDgfxujp 0 6 13 2884 0 14 Dtool_vDgfxujp 328 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_int_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               integer value for the nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
9 14 Dtool_vDgfxnEy 0 6 14 2884 0 14 Dtool_vDgfxnEy 328 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_int64_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               int64 value for the nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
10 14 Dtool_vDgfc7u1 0 6 15 2884 0 14 Dtool_vDgfc7u1 331 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::has_double_word
//       Access: Public
//  Description: Returns true if the declaration's value has a valid
//               integer value for the nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
11 14 Dtool_vDgf8qaT 0 6 16 2880 0 14 Dtool_vDgf8qaT 404 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_string_word
//       Access: Public
//  Description: Returns the string value of the nth word of the
//               declaration's value, or empty string if there is no
//               nth value.  See also has_string_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
12 14 Dtool_vDgf7hcJ 0 6 17 2884 0 14 Dtool_vDgf7hcJ 394 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_bool_word
//       Access: Public
//  Description: Returns the boolean value of the nth word of the
//               declaration's value, or false if there is no nth
//               value.  See also has_bool_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
13 14 Dtool_vDgf60hU 0 6 18 2883 0 14 Dtool_vDgf60hU 387 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_int_word
//       Access: Public
//  Description: Returns the integer value of the nth word of the
//               declaration's value, or 0 if there is no nth value.
//               See also has_int_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
14 14 Dtool_vDgf7RCd 0 6 19 2885 0 14 Dtool_vDgf7RCd 389 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_int64_word
//       Access: Public
//  Description: Returns the int64 value of the nth word of the
//               declaration's value, or 0 if there is no nth value.
//               See also has_int64_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
15 14 Dtool_vDgfoBtg 0 6 20 2886 0 14 Dtool_vDgfoBtg 393 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_double_word
//       Access: Public
//  Description: Returns the integer value of the nth word of the
//               declaration's value, or 0 if there is no nth value.
//               See also has_double_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2876  1 n 1 2883  
16 14 Dtool_vDgfAIsR 0 4 21 2882 0 14 Dtool_vDgfAIsR 0 3 4 this 3 2881  1 n 1 2883  5 value 1 2880  
17 14 Dtool_vDgfQVP2 0 4 22 2882 0 14 Dtool_vDgfQVP2 0 3 4 this 3 2881  1 n 1 2883  5 value 1 2884  
18 14 Dtool_vDgfY8PP 0 4 23 2882 0 14 Dtool_vDgfY8PP 0 3 4 this 3 2881  1 n 1 2883  5 value 1 2883  
19 14 Dtool_vDgfEO9_ 0 4 24 2882 0 14 Dtool_vDgfEO9_ 0 3 4 this 3 2881  1 n 1 2883  5 value 1 2885  
20 14 Dtool_vDgfX4No 0 4 25 2882 0 14 Dtool_vDgfX4No 0 3 4 this 3 2881  1 n 1 2883  5 value 1 2886  
21 14 Dtool_vDgftrm_ 0 6 26 2883 0 14 Dtool_vDgftrm_ 530 ////////////////////////////////////////////////////////////////////
//     Function: ConfigDeclaration::get_decl_seq
//       Access: Public
//  Description: Returns the sequence number of the declaration within
//               the page.  Sequence numbers are assigned as each
//               declaration is created; each declaration is given a
//               higher sequence number than all the declarations
//               created in the page before it.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2876  
22 14 Dtool_vDgfkR03 0 4 27 2882 0 14 Dtool_vDgfkR03 0 2 4 this 3 2876  3 out 1 2887  
23 14 Dtool_vDgfWulI 0 4 28 2882 0 14 Dtool_vDgfWulI 0 2 4 this 3 2876  3 out 1 2887  
24 14 Dtool_vDgfPGVr 0 6 30 2878 0 14 Dtool_vDgfPGVr 0 0 
25 14 Dtool_vDgfL7Gu 0 6 31 2878 0 14 Dtool_vDgfL7Gu 0 0 
26 14 Dtool_vDgfUNsX 0 6 32 2880 0 14 Dtool_vDgfUNsX 338 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_name
//       Access: Published
//  Description: Returns the name of the page.  If the page was loaded
//               from a .prc file, this is usually the filename.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2888  
27 14 Dtool_vDgfJyhA 0 6 33 2884 0 14 Dtool_vDgfJyhA 517 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::is_special
//       Access: Published
//  Description: Returns true if this is the special "default" or
//               "local" page, or false if it is an ordinary page,
//               e.g. an implicit page loaded from a prc file at
//               startup, or an explicit page created by
//               ConfigPageManager::make_explicit_page().
//////////////////////////////////////////////////////////////////// 1 4 this 3 2888  
28 14 Dtool_vDgfeRrb 0 6 34 2884 0 14 Dtool_vDgfeRrb 437 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::is_implicit
//       Access: Published
//  Description: Returns true if the page was loaded by implicitly
//               searching the config path on startup, or false if it
//               was explicitly loaded by dynamic code after initial
//               startup.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2888  
29 14 Dtool_vDgfwgBJ 0 4 35 2882 0 14 Dtool_vDgfwgBJ 0 2 4 this 3 2878  4 sort 1 2883  
30 14 Dtool_vDgf4bV_ 0 6 36 2883 0 14 Dtool_vDgf4bV_ 316 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_sort
//       Access: Published
//  Description: Returns the explicit sort order of this particular
//               ConfigPage.  See set_sort().
//////////////////////////////////////////////////////////////////// 1 4 this 3 2888  
31 14 Dtool_vDgfKe18 0 6 37 2883 0 14 Dtool_vDgfKe18 728 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_page_seq
//       Access: Published
//  Description: Returns the sequence number of the page.  
//
//               Sequence numbers for a particular class (implicit
//               vs. explicit) of pages are assigned as each page is
//               loaded; each page is given a higher sequence number
//               than all the pages loaded before it.
//
//               The implicit_load pages, which are discovered in the
//               file system automatically, have a different set of
//               sequence numbers than the explicit pages.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2888  
32 14 Dtool_vDgfK7vW 0 6 38 2883 0 14 Dtool_vDgfK7vW 592 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_trust_level
//       Access: Published
//  Description: Returns the trust level associated with this page.
//               An untrusted page is trust level 0; if the page was
//               loaded from a signed .prc file, its trust level is
//               the index number of the certificate that signed it.
//               Generally, a higher trust level value represents
//               a greater level of trust.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2888  
33 14 Dtool_vDgfQ6Y4 0 4 39 2882 0 14 Dtool_vDgfQ6Y4 456 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::set_trust_level
//       Access: Published
//  Description: Explicitly sets the trust level on this particular
//               page.  Note that any subsequent changes to the page,
//               or to any variable declarations on it, will reset the
//               trust level to zero.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2878  11 trust_level 1 2883  
34 14 Dtool_vDgfobQg 0 6 40 2880 0 14 Dtool_vDgfobQg 399 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPage::get_signature
//       Access: Published
//  Description: Returns the raw binary signature that was found in
//               the prc file, if any.  This method is probably not
//               terribly useful for most applications.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2888  
35 14 Dtool_vDgfp8Hx 0 4 41 2882 0 14 Dtool_vDgfp8Hx 0 1 4 this 3 2878  
36 14 Dtool_vDgfX8QI 0 6 42 2884 0 14 Dtool_vDgfX8QI 0 2 4 this 3 2878  2 in 1 2890  
37 14 Dtool_vDgfQMAZ 0 6 43 2884 0 14 Dtool_vDgfQMAZ 0 3 4 this 3 2878  2 in 1 2890  8 password 1 2880  
38 14 Dtool_vDgfbnS0 0 6 44 2881 0 14 Dtool_vDgfbnS0 0 3 4 this 3 2878  8 variable 1 2879  5 value 1 2880  
39 14 Dtool_vDgfa0Ry 0 6 44 2881 0 14 Dtool_vDgfa0Ry 0 3 4 this 3 2878  8 variable 1 2880  5 value 1 2880  
40 14 Dtool_vDgfUNQd 0 6 45 2884 0 14 Dtool_vDgfUNQd 0 2 4 this 3 2878  4 decl 1 2881  
41 14 Dtool_vDgf4OlT 0 6 46 2883 0 14 Dtool_vDgf4OlT 0 1 4 this 3 2888  
42 14 Dtool_vDgfLiqb 0 6 47 2876 0 14 Dtool_vDgfLiqb 0 2 4 this 3 2888  1 n 1 2883  
43 14 Dtool_vDgfW28u 0 6 48 2881 0 14 Dtool_vDgfW28u 0 2 4 this 3 2878  1 n 1 2883  
44 14 Dtool_vDgfvsYV 0 6 49 2880 0 14 Dtool_vDgfvsYV 0 2 4 this 3 2888  1 n 1 2883  
45 14 Dtool_vDgfTmDS 0 6 50 2880 0 14 Dtool_vDgfTmDS 0 2 4 this 3 2888  1 n 1 2883  
46 14 Dtool_vDgft4Y8 0 6 51 2884 0 14 Dtool_vDgft4Y8 0 2 4 this 3 2888  1 n 1 2883  
47 14 Dtool_vDgfouea 0 4 52 2882 0 14 Dtool_vDgfouea 0 2 4 this 3 2888  3 out 1 2887  
48 14 Dtool_vDgfnrvx 0 4 53 2882 0 14 Dtool_vDgfnrvx 0 2 4 this 3 2888  3 out 1 2887  
49 14 Dtool_vDgfMy5p 0 4 54 2882 0 14 Dtool_vDgfMy5p 0 2 4 this 3 2888  3 out 1 2887  
50 14 Dtool_vDgfTibR 0 6 56 2884 0 14 Dtool_vDgfTibR 908 // Filename: configPageManager.I
// Created by:  drose (15Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::loaded_implicit_pages
//       Access: Published
//  Description: Returns true if the implicit *.prc files have already
//               been loaded, false otherwise.  Normally this will
//               only be false briefly before startup.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2891  
51 14 Dtool_vDgf6EjB 0 4 57 2882 0 14 Dtool_vDgf6EjB 536 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::load_implicit_pages
//       Access: Published
//  Description: Searches the PRC_DIR and/or PRC_PATH directories for
//               *.prc files and loads them in as pages.  This is
//               normally called automatically at startup time, when
//               the first variable's value is referenced.  See also
//               reload_implicit_pages().
//////////////////////////////////////////////////////////////////// 1 4 this 3 2893  
52 14 Dtool_vDgfSIdn 0 4 58 2882 0 14 Dtool_vDgfSIdn 0 1 4 this 3 2893  
53 14 Dtool_vDgfBr_C 0 6 59 2894 0 14 Dtool_vDgfBr_C 556 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_search_path
//       Access: Published
//  Description: Returns the search path used to locate implicit .prc
//               files.  This is determined by the PRC_DIR and
//               PRC_PATH environment variables.  The object returned
//               by this method may be modified to change the path at
//               runtime, and then reload_implicit_pages() called.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2893  
54 14 Dtool_vDgfOjrt 0 6 60 2883 0 14 Dtool_vDgfOjrt 574 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_prc_patterns
//       Access: Published
//  Description: Returns the number of patterns, like "*.prc", that
//               are compiled in that will be searched for as default
//               config filenames.  Normally there is only one
//               pattern, and it is "*.prc", but others may be
//               specified with the PRC_FILENAME variable in
//               Config.pp.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2891  
55 14 Dtool_vDgf7pmq 0 6 61 2880 0 14 Dtool_vDgf7pmq 385 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_prc_pattern
//       Access: Published
//  Description: Returns the nth filename pattern that will be
//               considered a match as a valid config file.  See
//               get_num_prc_patterns().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2891  1 n 1 2883  
56 14 Dtool_vDgf9X8U 0 6 62 2883 0 14 Dtool_vDgf9X8U 436 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_prc_encrypted_patterns
//       Access: Published
//  Description: Returns the number of patterns, like "*.pre", that
//               are compiled in that will be searched for as special
//               config files that are understood to be encrypted.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2891  
57 14 Dtool_vDgfzIDb 0 6 63 2880 0 14 Dtool_vDgfzIDb 415 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_prc_encrypted_pattern
//       Access: Published
//  Description: Returns the nth filename pattern that will be
//               considered a match as a valid encrypted config
//               file.  See get_num_prc_encrypted_patterns().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2891  1 n 1 2883  
58 14 Dtool_vDgfwzxf 0 6 64 2883 0 14 Dtool_vDgfwzxf 533 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_prc_executable_patterns
//       Access: Published
//  Description: Returns the number of patterns, like "*.exe", that
//               are compiled in that will be searched for as special
//               config files that are to be executed as a program,
//               and their output taken to be input.  This is normally
//               empty.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2891  
59 14 Dtool_vDgfHOFD 0 6 65 2880 0 14 Dtool_vDgfHOFD 424 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_prc_executable_pattern
//       Access: Published
//  Description: Returns the nth filename pattern that will be
//               considered a match as a valid executable-style config
//               file.  See get_num_prc_executable_patterns().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2891  1 n 1 2883  
60 14 Dtool_vDgf1BwY 0 6 66 2878 0 14 Dtool_vDgf1BwY 0 2 4 this 3 2893  4 name 1 2880  
61 14 Dtool_vDgfFhLr 0 6 67 2884 0 14 Dtool_vDgfFhLr 0 2 4 this 3 2893  4 page 1 2878  
62 14 Dtool_vDgfNpX6 0 6 68 2883 0 14 Dtool_vDgfNpX6 450 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_implicit_pages
//       Access: Published
//  Description: Returns the current number of implicitly-loaded
//               ConfigPages in the world.  These represent files that
//               were automatically discovered on the disk as .prc
//               files.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2891  
63 14 Dtool_vDgf5iN2 0 6 69 2878 0 14 Dtool_vDgf5iN2 332 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_implicit_page
//       Access: Published
//  Description: Returns the nth implicit ConfigPage in the world.
//               See get_num_implicit_pages().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2891  1 n 1 2883  
64 14 Dtool_vDgfHC4q 0 6 70 2883 0 14 Dtool_vDgfHC4q 490 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_num_explicit_pages
//       Access: Published
//  Description: Returns the current number of explicitly-loaded
//               ConfigPages in the world.  These represent pages that
//               were loaded dynamically at runtime by explicit calls
//               to ConfigPageManager::make_explicit_page().
//////////////////////////////////////////////////////////////////// 1 4 this 3 2891  
65 14 Dtool_vDgflDa_ 0 6 71 2878 0 14 Dtool_vDgflDa_ 332 ////////////////////////////////////////////////////////////////////
//     Function: ConfigPageManager::get_explicit_page
//       Access: Published
//  Description: Returns the nth explicit ConfigPage in the world.
//               See get_num_explicit_pages().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2891  1 n 1 2883  
66 14 Dtool_vDgfdhHl 0 4 72 2882 0 14 Dtool_vDgfdhHl 0 2 4 this 3 2891  3 out 1 2887  
67 14 Dtool_vDgfN841 0 4 73 2882 0 14 Dtool_vDgfN841 0 2 4 this 3 2891  3 out 1 2887  
68 14 Dtool_vDgfH_23 0 6 74 2893 0 14 Dtool_vDgfH_23 0 0 
69 14 Dtool_vDgffAWp 0 7 89 2895 1538 14 Dtool_vDgffAWp 492 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::Constructor
//       Access: Published
//  Description: Use this constructor to make a ConfigVariable of an
//               unspecified type.  Usually you'd want to do this just
//               to reference a previously-defined ConfigVariable of a
//               specific type, without having to know what type it is.
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
70 14 Dtool_vDgfRHwC 0 6 91 2876 0 14 Dtool_vDgfRHwC 390 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_default_value
//       Access: Published
//  Description: Returns the default variable specified for this
//               variable.  If the variable has not yet been defined,
//               this will return NULL.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2896  
71 14 Dtool_vDgfvDN0 0 6 92 2880 0 14 Dtool_vDgfvDN0 315 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_string_value
//       Access: Published
//  Description: Returns the toplevel value of the variable, formatted
//               as a string.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2896  
72 14 Dtool_vDgf3HD1 0 4 93 2882 0 14 Dtool_vDgf3HD1 443 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_string_value
//       Access: Published
//  Description: Changes the value assigned to this variable.  This
//               creates a local value that shadows any values defined
//               in the .prc files, until clear_local_value() is
//               called.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2895  5 value 1 2880  
73 14 Dtool_vDgfcJ_r 0 4 94 2882 0 14 Dtool_vDgfcJ_r 376 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::clear_value
//       Access: Published
//  Description: Removes the value assigned to this variable, and lets
//               its original value (as read from the prc files) show
//               through.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2895  
74 14 Dtool_vDgfp0MY 0 6 95 2883 0 14 Dtool_vDgfp0MY 402 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_num_words
//       Access: Published
//  Description: Returns the number of words in the variable's
//               value.  A word is defined as a sequence of
//               non-whitespace characters delimited by whitespace.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2896  
75 14 Dtool_vDgf4Tsy 0 6 96 2884 0 14 Dtool_vDgf4Tsy 446 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_string_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               string value for the nth word.  This is really the
//               same thing as asking if there are at least n words in
//               the value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
76 14 Dtool_vDgf94kx 0 6 97 2884 0 14 Dtool_vDgf94kx 326 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_bool_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               boolean value for the nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
77 14 Dtool_vDgfd0tj 0 6 98 2884 0 14 Dtool_vDgfd0tj 325 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_int_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               integer value for the nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
78 14 Dtool_vDgfYzDd 0 6 99 2884 0 14 Dtool_vDgfYzDd 334 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_int64_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               64-bit integer value for the nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
79 14 Dtool_vDgfxdWD 0 6 100 2884 0 14 Dtool_vDgfxdWD 328 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::has_double_word
//       Access: Published
//  Description: Returns true if the variable's value has a valid
//               integer value for the nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
80 14 Dtool_vDgfg2rl 0 6 101 2880 0 14 Dtool_vDgfg2rl 401 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_string_word
//       Access: Published
//  Description: Returns the string value of the nth word of the
//               variable's value, or empty string if there is no
//               nth value.  See also has_string_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
81 14 Dtool_vDgfFdkk 0 6 102 2884 0 14 Dtool_vDgfFdkk 391 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_bool_word
//       Access: Published
//  Description: Returns the boolean value of the nth word of the
//               variable's value, or false if there is no nth
//               value.  See also has_bool_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
82 14 Dtool_vDgf1RtW 0 6 103 2883 0 14 Dtool_vDgf1RtW 384 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_int_word
//       Access: Published
//  Description: Returns the integer value of the nth word of the
//               variable's value, or 0 if there is no nth value.
//               See also has_int_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
83 14 Dtool_vDgfgQCQ 0 6 104 2885 0 14 Dtool_vDgfgQCQ 384 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_int64_word
//       Access: Published
//  Description: Returns the int64 value of the nth word of the
//               variable's value, or 0 if there is no nth value.
//               See also has_int_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
84 14 Dtool_vDgfGzV2 0 6 105 2886 0 14 Dtool_vDgfGzV2 390 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::get_double_word
//       Access: Published
//  Description: Returns the integer value of the nth word of the
//               variable's value, or 0 if there is no nth value.
//               See also has_double_word().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2896  1 n 1 2883  
85 14 Dtool_vDgfz4LI 0 4 106 2882 0 14 Dtool_vDgfz4LI 326 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_string_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2895  1 n 1 2883  5 value 1 2880  
86 14 Dtool_vDgfytus 0 4 107 2882 0 14 Dtool_vDgfytus 324 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_bool_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2895  1 n 1 2883  5 value 1 2884  
87 14 Dtool_vDgfzKpF 0 4 108 2882 0 14 Dtool_vDgfzKpF 323 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_int_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2895  1 n 1 2883  5 value 1 2883  
88 14 Dtool_vDgf6s1p 0 4 109 2882 0 14 Dtool_vDgf6s1p 325 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_int64_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2895  1 n 1 2883  5 value 1 2885  
89 14 Dtool_vDgf9Fer 0 4 110 2882 0 14 Dtool_vDgf9Fer 326 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariable::set_double_word
//       Access: Published
//  Description: Changes the nth word to the indicated value without
//               affecting the other words.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2895  1 n 1 2883  5 value 1 2886  
90 14 Dtool_vDgfLAYK 0 6 77 2880 0 14 Dtool_vDgfLAYK 261 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_name
//       Access: Published
//  Description: Returns the name of the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
91 14 Dtool_vDgfSB4b 0 6 78 2760 0 14 Dtool_vDgfSB4b 386 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_value_type
//       Access: Published
//  Description: Returns the stated type of this variable.  This
//               should be VT_list, unless a later variable
//               declaration has changed it.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
92 14 Dtool_vDgfZc0t 0 6 79 2880 0 14 Dtool_vDgfZc0t 323 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_description
//       Access: Published
//  Description: Returns the brief description of this variable, if
//               it has been defined.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
93 14 Dtool_vDgfZZnT 0 6 80 2883 0 14 Dtool_vDgfZZnT 522 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_flags
//       Access: Public
//  Description: Returns the flags value as set by set_flags().  This
//               includes the trust level and some other settings.
//               See the individual methods is_closed(),
//               get_trust_level(), etc. to pull out the semantic
//               meaning of these flags individually.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
94 14 Dtool_vDgfE1aP 0 6 81 2884 0 14 Dtool_vDgfE1aP 749 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::is_closed
//       Access: Public
//  Description: Returns true if the variable is not trusted by any
//               prc file (and hence cannot be modified from its
//               compiled-in default value), or false for the normal
//               case, in which the variable can be modified by any
//               prc file at or above its trust level (see
//               get_trust_level()).
//
//               This value only has effect in a release build
//               (specifically, when PRC_RESPECT_TRUST_LEVEL is
//               defined true in Config.pp).
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
95 14 Dtool_vDgfrrma 0 6 82 2883 0 14 Dtool_vDgfrrma 835 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::get_trust_level
//       Access: Public
//  Description: Returns the minimum trust_level a prc file must
//               demonstrate in order to redefine the value for this
//               variable.  Arguably, this should be called the
//               "mistrust level", since the larger the value, the
//               more suspicious we are of prc files.  This value is
//               not used if is_closed() returns true, which indicates
//               no file may be trusted.
//
//               This value only has effect in a release build
//               (specifically, when PRC_RESPECT_TRUST_LEVEL is
//               defined true in Config.pp).
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
96 14 Dtool_vDgfYuk3 0 6 83 2884 0 14 Dtool_vDgfYuk3 510 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::is_dynamic
//       Access: Public
//  Description: Returns true if the variable was indicated as
//               "dynamic" by its constructor, indicating that its
//               name was dynamically generated, possibly from a large
//               pool, and it should not be listed along with the
//               other variables.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
97 14 Dtool_vDgffhKJ 0 6 84 2884 0 14 Dtool_vDgffhKJ 525 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::clear_local_value
//       Access: Published
//  Description: Removes the local value defined for this variable,
//               and allows its value to be once again retrieved from
//               the .prc files.
//
//               Returns true if the value was successfully removed,
//               false if it did not exist in the first place.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2900  
98 14 Dtool_vDgfV4Ko 0 6 85 2884 0 14 Dtool_vDgfV4Ko 403 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::has_local_value
//       Access: Published
//  Description: Returns true if this variable's value has been
//               shadowed by a local assignment (as created via
//               make_local_value()), or false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
99 14 Dtool_vDgfVuDp 0 6 86 2884 0 14 Dtool_vDgfVuDp 395 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::has_value
//       Access: Public
//  Description: Returns true if this variable has an explicit value,
//               either from a prc file or locally set, or false if
//               variable has its default value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2898  
100 14 Dtool_vDgf35Ii 0 4 87 2882 0 14 Dtool_vDgf35Ii 226 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 2898  3 out 1 2887  
101 14 Dtool_vDgf08N6 0 4 88 2882 0 14 Dtool_vDgf08N6 225 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBase::write
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 2898  3 out 1 2887  
102 14 Dtool_vDgfgHBK 0 7 112 2901 1569 14 Dtool_vDgfgHBK 725 // Filename: configVariableBool.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
103 14 Dtool_vDgfTv_r 0 7 112 2901 1569 14 Dtool_vDgfTv_r 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  5 flags 1 2883  
104 14 Dtool_vDgfcIjg 0 7 112 2901 1569 14 Dtool_vDgfcIjg 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  
105 14 Dtool_vDgfBzBs 0 7 112 2901 1569 14 Dtool_vDgfBzBs 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2880  
106 14 Dtool_vDgftw8k 0 7 112 2901 1569 14 Dtool_vDgftw8k 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2884  11 description 1 2880  5 flags 1 2883  
107 14 Dtool_vDgfjFrl 0 7 112 2901 1569 14 Dtool_vDgfjFrl 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2884  11 description 1 2880  
108 14 Dtool_vDgffQgh 0 7 112 2901 1569 14 Dtool_vDgffQgh 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2884  
109 14 Dtool_vDgfuDfZ 0 6 113 2901 0 14 Dtool_vDgfuDfZ 267 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2901  5 value 1 2884  
110 14 Dtool_vDgfJqiY 0 6 115 2883 0 14 Dtool_vDgfJqiY 277 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::size()
//       Access: Published
//  Description: Returns the number of unique words in the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2902  
111 14 Dtool_vDgfLNU6 0 6 116 2884 0 14 Dtool_vDgfLNU6 276 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::operator []
//       Access: Published
//  Description: Returns the value of the variable's nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2902  1 n 1 2883  
112 14 Dtool_vDgf2TR9 0 4 117 2882 0 14 Dtool_vDgf2TR9 266 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2901  5 value 1 2884  
113 14 Dtool_vDgfrUX8 0 6 118 2884 0 14 Dtool_vDgfrUX8 258 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::get_value
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2902  
114 14 Dtool_vDgfc047 0 6 119 2884 0 14 Dtool_vDgfc047 274 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2902  
115 14 Dtool_vDgfXBj8 0 6 120 2884 0 14 Dtool_vDgfXBj8 261 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2902  1 n 1 2883  
116 14 Dtool_vDgfDBoK 0 4 121 2882 0 14 Dtool_vDgfDBoK 338 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2901  1 n 1 2883  5 value 1 2884  
117 14 Dtool_vDgf3sZ9 0 6 114 2884 0 14 Dtool_vDgf3sZ9 266 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableBool::typecast operator
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2902  
118 14 Dtool_vDgf48p3 0 6 124 2880 0 14 Dtool_vDgf48p3 752 // Filename: configVariableCore.I
// Created by:  drose (15Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_name
//       Access: Public
//  Description: Returns the name of the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
119 14 Dtool_vDgf1Mee 0 6 125 2884 0 14 Dtool_vDgf1Mee 345 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::is_used
//       Access: Public
//  Description: Returns true if the variable has been referenced by a
//               ConfigVariable somewhere in code, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
120 14 Dtool_vDgf9UJJ 0 6 126 2760 0 14 Dtool_vDgf9UJJ 376 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_value_type
//       Access: Public
//  Description: Returns the stated type of this variable.  If the
//               variable has not yet been defined, this will be
//               VT_undefined.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
121 14 Dtool_vDgfn4Eb 0 6 127 2880 0 14 Dtool_vDgfn4Eb 320 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_description
//       Access: Public
//  Description: Returns the brief description of this variable, if
//               it has been defined.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
122 14 Dtool_vDgfXk3A 0 6 128 2883 0 14 Dtool_vDgfXk3A 522 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_flags
//       Access: Public
//  Description: Returns the flags value as set by set_flags().  This
//               includes the trust level and some other settings.
//               See the individual methods is_closed(),
//               get_trust_level(), etc. to pull out the semantic
//               meaning of these flags individually.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
123 14 Dtool_vDgf3Wq8 0 6 129 2884 0 14 Dtool_vDgf3Wq8 749 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::is_closed
//       Access: Public
//  Description: Returns true if the variable is not trusted by any
//               prc file (and hence cannot be modified from its
//               compiled-in default value), or false for the normal
//               case, in which the variable can be modified by any
//               prc file at or above its trust level (see
//               get_trust_level()).
//
//               This value only has effect in a release build
//               (specifically, when PRC_RESPECT_TRUST_LEVEL is
//               defined true in Config.pp).
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
124 14 Dtool_vDgf5X2H 0 6 130 2883 0 14 Dtool_vDgf5X2H 835 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_trust_level
//       Access: Public
//  Description: Returns the minimum trust_level a prc file must
//               demonstrate in order to redefine the value for this
//               variable.  Arguably, this should be called the
//               "mistrust level", since the larger the value, the
//               more suspicious we are of prc files.  This value is
//               not used if is_closed() returns true, which indicates
//               no file may be trusted.
//
//               This value only has effect in a release build
//               (specifically, when PRC_RESPECT_TRUST_LEVEL is
//               defined true in Config.pp).
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
125 14 Dtool_vDgfuj0k 0 6 131 2884 0 14 Dtool_vDgfuj0k 510 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::is_dynamic
//       Access: Public
//  Description: Returns true if the variable was indicated as
//               "dynamic" by its constructor, indicating that its
//               name was dynamically generated, possibly from a large
//               pool, and it should not be listed along with the
//               other variables.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
126 14 Dtool_vDgftd_0 0 6 132 2876 0 14 Dtool_vDgftd_0 391 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_default_value
//       Access: Public
//  Description: Returns the default variable specified for this
//               variable.  If the variable has not yet been defined,
//               this will return NULL.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
127 14 Dtool_vDgfa_qu 0 4 133 2882 0 14 Dtool_vDgfa_qu 0 2 4 this 3 2879  10 value_type 1 2760  
128 14 Dtool_vDgfb5sg 0 4 134 2882 0 14 Dtool_vDgfb5sg 0 2 4 this 3 2879  5 flags 1 2883  
129 14 Dtool_vDgfY4Wd 0 4 135 2882 0 14 Dtool_vDgfY4Wd 0 2 4 this 3 2879  11 description 1 2880  
130 14 Dtool_vDgfuhNF 0 4 136 2882 0 14 Dtool_vDgfuhNF 0 2 4 this 3 2879  13 default_value 1 2880  
131 14 Dtool_vDgfT_ch 0 4 137 2882 0 14 Dtool_vDgfT_ch 306 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::set_used
//       Access: Public
//  Description: Marks that the variable has been "declared" by a
//               ConfigVariable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2879  
132 14 Dtool_vDgfqOs_ 0 6 138 2881 0 14 Dtool_vDgfqOs_ 0 1 4 this 3 2879  
133 14 Dtool_vDgfQkb2 0 6 139 2884 0 14 Dtool_vDgfQkb2 0 1 4 this 3 2879  
134 14 Dtool_vDgfjnbV 0 6 140 2884 0 14 Dtool_vDgfjnbV 400 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::has_local_value
//       Access: Public
//  Description: Returns true if this variable's value has been
//               shadowed by a local assignment (as created via
//               make_local_value()), or false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
135 14 Dtool_vDgfHrTW 0 6 141 2884 0 14 Dtool_vDgfHrTW 0 1 4 this 3 2904  
136 14 Dtool_vDgftH13 0 6 142 2883 0 14 Dtool_vDgftH13 0 1 4 this 3 2904  
137 14 Dtool_vDgf4GYX 0 6 143 2876 0 14 Dtool_vDgf4GYX 0 2 4 this 3 2904  1 n 1 2883  
138 14 Dtool_vDgfH4ep 0 6 144 2883 0 14 Dtool_vDgfH4ep 412 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_num_references
//       Access: Public
//  Description: Returns the number of prc files that reference this
//               variable.  This is not exactly the same as the number
//               of declarations; see get_reference().
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
139 14 Dtool_vDgfs4eh 0 6 145 2876 0 14 Dtool_vDgfs4eh 645 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_reference
//       Access: Public
//  Description: Returns the nth declaration in a prc file that
//               references this variable.  This is similar, but not
//               identical to, get_declaration().  The difference is
//               that this will list *only* true references in a prc
//               file, and will not list default values or
//               locally-assigned values; it also will list even the
//               untrusted files.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2904  1 n 1 2883  
140 14 Dtool_vDgf8TXw 0 6 146 2883 0 14 Dtool_vDgf8TXw 378 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_num_trusted_references
//       Access: Public
//  Description: Returns the number of trusted prc files that
//               reference this variable.  See also
//               get_num_references().
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
141 14 Dtool_vDgfd3_G 0 6 147 2876 0 14 Dtool_vDgfd3_G 776 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_trusted_reference
//       Access: Public
//  Description: Returns the nth declaration in a trusted prc file
//               that references this variable.  This is similar, but
//               not identical to, get_declaration().  The difference
//               is that this will list *only* true references in a
//               prc file, and will not list default values or
//               locally-assigned values.
//
//               This is also similar to get_reference(), except that
//               it only lists the trusted declarations, omitting the
//               untrusted ones.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2904  1 n 1 2883  
142 14 Dtool_vDgfFTQy 0 6 148 2883 0 14 Dtool_vDgfFTQy 352 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_num_unique_references
//       Access: Public
//  Description: Returns the number of trusted, unique (by string
//               value) values there exist for this variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2904  
143 14 Dtool_vDgfSNwA 0 6 149 2876 0 14 Dtool_vDgfSNwA 431 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableCore::get_unique_reference
//       Access: Public
//  Description: Returns the nth trusted, unique value for this
//               variable.  This is similar to
//               get_trusted_reference(), except that duplicate values
//               are removed.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2904  1 n 1 2883  
144 14 Dtool_vDgfldYP 0 4 150 2882 0 14 Dtool_vDgfldYP 0 2 4 this 3 2904  3 out 1 2887  
145 14 Dtool_vDgfhGdn 0 4 151 2882 0 14 Dtool_vDgfhGdn 0 2 4 this 3 2904  3 out 1 2887  
146 14 Dtool_vDgfCK_u 0 7 153 2906 1608 14 Dtool_vDgfCK_u 729 // Filename: configVariableDouble.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
147 14 Dtool_vDgfVT_M 0 7 153 2906 1608 14 Dtool_vDgfVT_M 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  5 flags 1 2883  
148 14 Dtool_vDgfcCSY 0 7 153 2906 1608 14 Dtool_vDgfcCSY 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  
149 14 Dtool_vDgfEDCV 0 7 153 2906 1608 14 Dtool_vDgfEDCV 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2880  
150 14 Dtool_vDgfAhLa 0 7 153 2906 1608 14 Dtool_vDgfAhLa 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2886  11 description 1 2880  5 flags 1 2883  
151 14 Dtool_vDgfWBUH 0 7 153 2906 1608 14 Dtool_vDgfWBUH 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2886  11 description 1 2880  
152 14 Dtool_vDgfYBO6 0 7 153 2906 1608 14 Dtool_vDgfYBO6 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2886  
153 14 Dtool_vDgf9oaH 0 6 154 2906 0 14 Dtool_vDgf9oaH 269 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2906  5 value 1 2886  
154 14 Dtool_vDgfiiNw 0 6 156 2883 0 14 Dtool_vDgfiiNw 279 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::size()
//       Access: Published
//  Description: Returns the number of unique words in the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2907  
155 14 Dtool_vDgfLoN2 0 6 157 2886 0 14 Dtool_vDgfLoN2 278 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::operator []
//       Access: Published
//  Description: Returns the value of the variable's nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2907  1 n 1 2883  
156 14 Dtool_vDgfjhoa 0 4 158 2882 0 14 Dtool_vDgfjhoa 268 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2906  5 value 1 2886  
157 14 Dtool_vDgfbA6h 0 6 159 2886 0 14 Dtool_vDgfbA6h 260 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::get_value
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2907  
158 14 Dtool_vDgfFMO4 0 6 160 2886 0 14 Dtool_vDgfFMO4 276 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2907  
159 14 Dtool_vDgfHfdb 0 6 161 2886 0 14 Dtool_vDgfHfdb 263 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2907  1 n 1 2883  
160 14 Dtool_vDgfTUh2 0 4 162 2882 0 14 Dtool_vDgfTUh2 340 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2906  1 n 1 2883  5 value 1 2886  
161 14 Dtool_vDgfAOAW 0 6 155 2886 0 14 Dtool_vDgfAOAW 268 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableDouble::typecast operator
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2907  
162 14 Dtool_vDgfuiRq 0 7 165 2909 1630 14 Dtool_vDgfuiRq 733 // Filename: configVariableFilename.I
// Created by:  drose (22Nov04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
163 14 Dtool_vDgf5vRW 0 7 165 2909 1630 14 Dtool_vDgf5vRW 235 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2910  11 description 1 2880  5 flags 1 2883  
164 14 Dtool_vDgfyAQf 0 7 165 2909 1630 14 Dtool_vDgfyAQf 235 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2910  11 description 1 2880  
165 14 Dtool_vDgf0kwV 0 7 165 2909 1630 14 Dtool_vDgf0kwV 235 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2910  
166 14 Dtool_vDgftq7m 0 6 166 2909 0 14 Dtool_vDgftq7m 271 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2909  5 value 1 2910  
167 14 Dtool_vDgfFSXo 0 6 168 2880 0 14 Dtool_vDgfFSXo 225 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::c_str
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
168 14 Dtool_vDgfJ1W6 0 6 169 2884 0 14 Dtool_vDgfJ1W6 225 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::empty
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
169 14 Dtool_vDgfwSZu 0 6 170 2914 0 14 Dtool_vDgfwSZu 226 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::length
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
170 14 Dtool_vDgfJYNd 0 6 171 2915 0 14 Dtool_vDgfJYNd 237 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Indexing operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2912  1 n 1 2883  
171 14 Dtool_vDgfdX94 0 6 172 2880 0 14 Dtool_vDgfdX94 450 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_fullpath
//       Access: Public
//  Description: Returns the entire filename: directory, basename,
//               extension.  This is the same thing returned by the
//               string typecast operator, so this function is a
//               little redundant.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
172 14 Dtool_vDgfdZMt 0 6 173 2880 0 14 Dtool_vDgfdZMt 391 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_dirname
//       Access: Public
//  Description: Returns the directory part of the filename.  This is
//               everything in the filename up to, but not including
//               the rightmost slash.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
173 14 Dtool_vDgf_BB0 0 6 174 2880 0 14 Dtool_vDgf_BB0 398 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_basename
//       Access: Public
//  Description: Returns the basename part of the filename.  This is
//               everything in the filename after the rightmost slash,
//               including any extensions.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
174 14 Dtool_vDgfA2V6 0 6 175 2880 0 14 Dtool_vDgfA2V6 345 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_fullpath_wo_extension
//       Access: Public
//  Description: Returns the full filename--directory and basename
//               parts--except for the extension.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
175 14 Dtool_vDgfxTY1 0 6 176 2880 0 14 Dtool_vDgfxTY1 333 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_basename_wo_extension
//       Access: Public
//  Description: Returns the basename part of the filename, without
//               the file extension.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
176 14 Dtool_vDgfiXPS 0 6 177 2880 0 14 Dtool_vDgfiXPS 394 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_extension
//       Access: Public
//  Description: Returns the file extension.  This is everything after
//               the rightmost dot, if there is one, or the empty
//               string if there is not.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
177 14 Dtool_vDgfql0m 0 6 178 2884 0 14 Dtool_vDgfql0m 237 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Equality operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2912  5 other 1 2910  
178 14 Dtool_vDgf4gwG 0 6 179 2884 0 14 Dtool_vDgf4gwG 239 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Inequality operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2912  5 other 1 2910  
179 14 Dtool_vDgfKw5E 0 6 180 2884 0 14 Dtool_vDgfKw5E 237 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Ordering operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2912  5 other 1 2910  
180 14 Dtool_vDgf6HHO 0 4 181 2882 0 14 Dtool_vDgf6HHO 270 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2909  5 value 1 2910  
181 14 Dtool_vDgfqvVh 0 7 182 2916 1841 14 Dtool_vDgfqvVh 262 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_value
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
182 14 Dtool_vDgfjUSR 0 7 183 2916 1841 14 Dtool_vDgfjUSR 278 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
183 14 Dtool_vDgfBeVR 0 7 184 2916 1841 14 Dtool_vDgfBeVR 265 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2912  1 n 1 2883  
184 14 Dtool_vDgfeMQy 0 4 185 2882 0 14 Dtool_vDgfeMQy 342 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2909  1 n 1 2883  5 value 1 2910  
185 14 Dtool_vDgfkJgo 0 6 167 2910 0 14 Dtool_vDgfkJgo 293 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableFilename::Filename typecast operator
//       Access: Published
//  Description: Returns the variable's value as a Filename.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2912  
186 14 Dtool_vDgfZ5NO 0 7 188 2917 1641 14 Dtool_vDgfZ5NO 723 // Filename: configVariableInt.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
187 14 Dtool_vDgfCIhz 0 7 188 2917 1641 14 Dtool_vDgfCIhz 230 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  5 flags 1 2883  
188 14 Dtool_vDgftwuj 0 7 188 2917 1641 14 Dtool_vDgftwuj 230 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  
189 14 Dtool_vDgfVauC 0 7 188 2917 1641 14 Dtool_vDgfVauC 230 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2880  
190 14 Dtool_vDgfJdKP 0 7 188 2917 1641 14 Dtool_vDgfJdKP 230 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2883  11 description 1 2880  5 flags 1 2883  
191 14 Dtool_vDgfIVT4 0 7 188 2917 1641 14 Dtool_vDgfIVT4 230 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2883  11 description 1 2880  
192 14 Dtool_vDgf15LP 0 7 188 2917 1641 14 Dtool_vDgf15LP 230 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2883  
193 14 Dtool_vDgfvXiv 0 6 189 2917 0 14 Dtool_vDgfvXiv 266 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2917  5 value 1 2883  
194 14 Dtool_vDgftake 0 6 191 2883 0 14 Dtool_vDgftake 276 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::size()
//       Access: Published
//  Description: Returns the number of unique words in the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2918  
195 14 Dtool_vDgfrtl3 0 6 192 2883 0 14 Dtool_vDgfrtl3 275 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::operator []
//       Access: Published
//  Description: Returns the value of the variable's nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2918  1 n 1 2883  
196 14 Dtool_vDgfV_rk 0 4 193 2882 0 14 Dtool_vDgfV_rk 265 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2917  5 value 1 2883  
197 14 Dtool_vDgfUxqZ 0 6 194 2883 0 14 Dtool_vDgfUxqZ 257 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::get_value
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2918  
198 14 Dtool_vDgfyloR 0 6 195 2883 0 14 Dtool_vDgfyloR 273 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2918  
199 14 Dtool_vDgfaaqx 0 6 196 2883 0 14 Dtool_vDgfaaqx 260 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2918  1 n 1 2883  
200 14 Dtool_vDgfUSbb 0 4 197 2882 0 14 Dtool_vDgfUSbb 337 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2917  1 n 1 2883  5 value 1 2883  
201 14 Dtool_vDgfFZt6 0 6 190 2883 0 14 Dtool_vDgfFZt6 265 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt::typecast operator
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2918  
202 14 Dtool_vDgfIBht 0 7 200 2920 1652 14 Dtool_vDgfIBht 727 // Filename: configVariableInt64.I
// Created by:  drose (19Dec07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
203 14 Dtool_vDgfyVJH 0 7 200 2920 1652 14 Dtool_vDgfyVJH 232 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2885  11 description 1 2880  5 flags 1 2885  
204 14 Dtool_vDgfQwBL 0 7 200 2920 1652 14 Dtool_vDgfQwBL 232 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2885  11 description 1 2880  
205 14 Dtool_vDgf_OqC 0 7 200 2920 1652 14 Dtool_vDgf_OqC 232 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2885  
206 14 Dtool_vDgfLNMl 0 7 200 2920 1652 14 Dtool_vDgfLNMl 232 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  5 flags 1 2885  
207 14 Dtool_vDgfjHwS 0 7 200 2920 1652 14 Dtool_vDgfjHwS 232 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  
208 14 Dtool_vDgf4Cxw 0 7 200 2920 1652 14 Dtool_vDgf4Cxw 232 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2880  
209 14 Dtool_vDgfa4Xw 0 6 201 2920 0 14 Dtool_vDgfa4Xw 268 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2920  5 value 1 2885  
210 14 Dtool_vDgfGyZN 0 6 203 2885 0 14 Dtool_vDgfGyZN 278 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::size()
//       Access: Published
//  Description: Returns the number of unique words in the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2921  
211 14 Dtool_vDgfzjjH 0 6 204 2885 0 14 Dtool_vDgfzjjH 277 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::operator []
//       Access: Published
//  Description: Returns the value of the variable's nth word.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2921  1 n 1 2883  
212 14 Dtool_vDgf3gZb 0 4 205 2882 0 14 Dtool_vDgf3gZb 267 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2920  5 value 1 2885  
213 14 Dtool_vDgfrK6I 0 6 206 2885 0 14 Dtool_vDgfrK6I 259 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::get_value
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2921  
214 14 Dtool_vDgfrQn5 0 6 207 2885 0 14 Dtool_vDgfrQn5 275 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2921  
215 14 Dtool_vDgfs6tO 0 6 208 2885 0 14 Dtool_vDgfs6tO 262 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2921  1 n 1 2883  
216 14 Dtool_vDgf_s1g 0 4 209 2882 0 14 Dtool_vDgf_s1g 339 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2920  1 n 1 2883  5 value 1 2885  
217 14 Dtool_vDgfMRee 0 6 202 2885 0 14 Dtool_vDgfMRee 267 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableInt64::typecast operator
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2921  
218 14 Dtool_vDgf0y9H 0 7 212 2923 1654 14 Dtool_vDgf0y9H 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  11 description 1 2880  5 flags 1 2883  
219 14 Dtool_vDgfb__G 0 7 212 2923 1654 14 Dtool_vDgfb__G 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  11 description 1 2880  
220 14 Dtool_vDgfQEAl 0 7 212 2923 1654 14 Dtool_vDgfQEAl 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
221 14 Dtool_vDgfUmrj 0 6 214 2883 0 14 Dtool_vDgfUmrj 279 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::get_num_values
//       Access: Published
//  Description: Returns the number of values in the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2924  
222 14 Dtool_vDgfiLnG 0 6 215 2880 0 14 Dtool_vDgfiLnG 274 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::get_string_value
//       Access: Published
//  Description: Returns the nth value of the variable.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2924  1 n 1 2883  
223 14 Dtool_vDgf9_us 0 6 216 2883 0 14 Dtool_vDgf9_us 293 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::get_num_unique_values
//       Access: Published
//  Description: Returns the number of unique values in the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2924  
224 14 Dtool_vDgfclMe 0 6 217 2880 0 14 Dtool_vDgfclMe 281 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::get_unique_value
//       Access: Published
//  Description: Returns the nth unique value of the variable.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2924  1 n 1 2883  
225 14 Dtool_vDgftI9s 0 6 218 2883 0 14 Dtool_vDgftI9s 278 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::size()
//       Access: Published
//  Description: Returns the number of unique values of the variable.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2924  
226 14 Dtool_vDgfowvO 0 6 219 2880 0 14 Dtool_vDgfowvO 448 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableList::operator []
//       Access: Published
//  Description: Returns the nth unique value of the variable.  Note
//               that the indexing operator returns the list of unique
//               values, and so the maximum range is
//               get_num_unique_values().
//////////////////////////////////////////////////////////////////// 2 4 this 3 2924  1 n 1 2883  
227 14 Dtool_vDgf5Asq 0 4 220 2882 0 14 Dtool_vDgf5Asq 0 2 4 this 3 2924  3 out 1 2887  
228 14 Dtool_vDgfhtwC 0 4 221 2882 0 14 Dtool_vDgfhtwC 0 2 4 this 3 2924  3 out 1 2887  
229 14 Dtool_vDgfbUoR 0 6 223 2879 0 14 Dtool_vDgfbUoR 0 2 4 this 3 2926  4 name 1 2880  
230 14 Dtool_vDgfICHW 0 6 224 2879 0 14 Dtool_vDgfICHW 0 6 4 this 3 2926  7 pattern 1 2880  4 type 1 2760  13 default_value 1 2880  11 description 1 2880  5 flags 1 2883  
231 14 Dtool_vDgfv8JU 0 6 224 2879 0 14 Dtool_vDgfv8JU 0 5 4 this 3 2926  7 pattern 1 2880  4 type 1 2760  13 default_value 1 2880  11 description 1 2880  
232 14 Dtool_vDgffBGQ 0 6 224 2879 0 14 Dtool_vDgffBGQ 0 4 4 this 3 2926  7 pattern 1 2880  4 type 1 2760  13 default_value 1 2880  
233 14 Dtool_vDgfvzyQ 0 6 225 2883 0 14 Dtool_vDgfvzyQ 824 // Filename: configVariableManager.I
// Created by:  drose (15Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableManager::get_num_variables
//       Access: Published
//  Description: Returns the current number of active ConfigVariableCores in
//               the world.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2927  
234 14 Dtool_vDgf2qFF 0 6 226 2879 0 14 Dtool_vDgf2qFF 290 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableManager::get_variable
//       Access: Published
//  Description: Returns the nth active ConfigVariableCore in the world.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2927  1 n 1 2883  
235 14 Dtool_vDgfuDAj 0 6 227 2880 0 14 Dtool_vDgfuDAj 0 2 4 this 3 2927  1 n 1 2883  
236 14 Dtool_vDgfp8_h 0 6 228 2884 0 14 Dtool_vDgfp8_h 0 2 4 this 3 2927  1 n 1 2883  
237 14 Dtool_vDgffFtp 0 4 229 2882 0 14 Dtool_vDgffFtp 0 2 4 this 3 2927  3 out 1 2887  
238 14 Dtool_vDgfH7se 0 4 230 2882 0 14 Dtool_vDgfH7se 0 2 4 this 3 2927  3 out 1 2887  
239 14 Dtool_vDgf5XCP 0 4 231 2882 0 14 Dtool_vDgf5XCP 0 2 4 this 3 2927  3 out 1 2887  
240 14 Dtool_vDgfKzQG 0 4 232 2882 0 14 Dtool_vDgfKzQG 0 1 4 this 3 2927  
241 14 Dtool_vDgfngxf 0 4 233 2882 0 14 Dtool_vDgfngxf 0 1 4 this 3 2927  
242 14 Dtool_vDgf0fM_ 0 4 234 2882 0 14 Dtool_vDgf0fM_ 0 1 4 this 3 2927  
243 14 Dtool_vDgfBx3a 0 6 235 2926 0 14 Dtool_vDgfBx3a 0 0 
244 14 Dtool_vDgfH5sv 0 7 237 2931 1677 14 Dtool_vDgfH5sv 237 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2929  11 description 1 2880  5 flags 1 2883  
245 14 Dtool_vDgfo2EQ 0 7 237 2931 1677 14 Dtool_vDgfo2EQ 237 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2929  11 description 1 2880  
246 14 Dtool_vDgfAynx 0 7 237 2931 1677 14 Dtool_vDgfAynx 237 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  5 flags 1 2883  
247 14 Dtool_vDgfY3qt 0 7 237 2931 1677 14 Dtool_vDgfY3qt 237 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  
248 14 Dtool_vDgfV4V4 0 7 237 2931 1677 14 Dtool_vDgfV4V4 737 // Filename: configVariableSearchPath.I
// Created by:  drose (21Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  11 description 1 2880  5 flags 1 2883  
249 14 Dtool_vDgfi7el 0 7 237 2931 1677 14 Dtool_vDgfi7el 737 // Filename: configVariableSearchPath.I
// Created by:  drose (21Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  11 description 1 2880  
250 14 Dtool_vDgfL6YY 0 7 237 2931 1677 14 Dtool_vDgfL6YY 737 // Filename: configVariableSearchPath.I
// Created by:  drose (21Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
251 14 Dtool_vDgf8xvO 0 6 240 2929 0 14 Dtool_vDgf8xvO 235 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::get_value
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 this 3 2932  
252 14 Dtool_vDgf_lIw 0 6 241 2929 0 14 Dtool_vDgf_lIw 243 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::get_default_value
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 this 3 2932  
253 14 Dtool_vDgf9EIJ 0 6 242 2884 0 14 Dtool_vDgf9EIJ 359 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::clear_local_value
//       Access: Published
//  Description: Removes all the directories locally added to the
//               search list, and restores it to its original form.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2931  
254 14 Dtool_vDgfTT5e 0 4 243 2882 0 14 Dtool_vDgfTT5e 347 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::clear
//       Access: Published
//  Description: Removes all the directories locally added to the
//               search list, and restores it to its original form.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2931  
255 14 Dtool_vDgfCt4a 0 4 244 2882 0 14 Dtool_vDgfCt4a 293 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::append_directory
//       Access: Published
//  Description: Adds a new directory to the end of the search list.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2931  9 directory 1 2910  
256 14 Dtool_vDgfClTA 0 4 245 2882 0 14 Dtool_vDgfClTA 296 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::prepend_directory
//       Access: Published
//  Description: Adds a new directory to the front of the search list.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2931  9 directory 1 2910  
257 14 Dtool_vDgfsHLH 0 4 246 2882 0 14 Dtool_vDgfsHLH 338 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::append_path
//       Access: Published
//  Description: Adds all of the directories listed in the search path
//               to the end of the search list.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2931  4 path 1 2929  
258 14 Dtool_vDgfA5UV 0 4 246 2882 0 14 Dtool_vDgfA5UV 338 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::append_path
//       Access: Published
//  Description: Adds all of the directories listed in the search path
//               to the end of the search list.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2931  4 path 1 2880  9 separator 1 2880  
259 14 Dtool_vDgfqRVC 0 4 246 2882 0 14 Dtool_vDgfqRVC 338 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::append_path
//       Access: Published
//  Description: Adds all of the directories listed in the search path
//               to the end of the search list.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2931  4 path 1 2880  
260 14 Dtool_vDgfUO8I 0 4 247 2882 0 14 Dtool_vDgfUO8I 345 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::prepend_path
//       Access: Published
//  Description: Adds all of the directories listed in the search path
//               to the beginning of the search list.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2931  4 path 1 2929  
261 14 Dtool_vDgfRA60 0 6 248 2884 0 14 Dtool_vDgfRA60 309 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::is_empty
//       Access: Published
//  Description: Returns true if the search list is empty, false
//               otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2932  
262 14 Dtool_vDgfSVN5 0 6 249 2883 0 14 Dtool_vDgfSVN5 298 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::get_num_directories
//       Access: Published
//  Description: Returns the number of directories on the search list.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2932  
263 14 Dtool_vDgfcr0V 0 6 250 2910 0 14 Dtool_vDgfcr0V 284 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::get_directory
//       Access: Published
//  Description: Returns the nth directory on the search list.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2932  1 n 1 2883  
264 14 Dtool_vDgfXwzn 0 7 251 2916 1841 14 Dtool_vDgfXwzn 466 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::find_file
//       Access: Published
//  Description: Searches all the directories in the search list for
//               the indicated file, in order.  Returns the full
//               matching pathname of the first match if found, or the
//               empty string if not found.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2932  8 filename 1 2910  
265 14 Dtool_vDgf7lh2 0 7 252 2934 1776 14 Dtool_vDgf7lh2 458 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::find_all_files
//       Access: Published
//  Description: This variant of find_all_files() returns the new
//               Results object, instead of filling on in on the
//               parameter list.  This is a little more convenient to
//               call from Python.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2932  8 filename 1 2910  
266 14 Dtool_vDgfJhmL 0 6 252 2883 0 14 Dtool_vDgfJhmL 682 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::find_all_files
//       Access: Published
//  Description: Searches all the directories in the search list for
//               the indicated file, in order.  Fills up the results
//               list with *all* of the matching filenames found, if
//               any.  Returns the number of matches found.
//
//               It is the responsibility of the the caller to clear
//               the results list first; otherwise, the newly-found
//               files will be appended to the list.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2932  8 filename 1 2910  7 results 1 2934  
267 14 Dtool_vDgfkYNJ 0 4 253 2882 0 14 Dtool_vDgfkYNJ 232 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 2932  3 out 1 2887  
268 14 Dtool_vDgfj3CN 0 4 254 2882 0 14 Dtool_vDgfj3CN 231 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::write
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 2932  3 out 1 2887  
269 14 Dtool_vDgfzr0K 0 6 239 2929 0 14 Dtool_vDgfzr0K 275 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableSearchPath::DSearchPath typecast
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2932  
270 14 Dtool_vDgfxoFd 0 7 256 2935 1709 14 Dtool_vDgfxoFd 729 // Filename: configVariableString.I
// Created by:  drose (20Oct04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 name 1 2880  
271 14 Dtool_vDgflDF7 0 7 256 2935 1709 14 Dtool_vDgflDF7 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  5 flags 1 2883  
272 14 Dtool_vDgfZRZG 0 7 256 2935 1709 14 Dtool_vDgfZRZG 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 name 1 2880  13 default_value 1 2880  11 description 1 2880  
273 14 Dtool_vDgfpyKD 0 7 256 2935 1709 14 Dtool_vDgfpyKD 233 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 name 1 2880  13 default_value 1 2880  
274 14 Dtool_vDgflnPz 0 6 257 2935 0 14 Dtool_vDgflnPz 269 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::operator =
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2935  5 value 1 2880  
275 14 Dtool_vDgfehBq 0 6 259 2880 0 14 Dtool_vDgfehBq 223 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::c_str
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2936  
276 14 Dtool_vDgfYAjn 0 6 260 2884 0 14 Dtool_vDgfYAjn 223 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::empty
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2936  
277 14 Dtool_vDgfkRuz 0 6 261 2914 0 14 Dtool_vDgfkRuz 224 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::length
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2936  
278 14 Dtool_vDgfjG7L 0 6 262 2915 0 14 Dtool_vDgfjG7L 235 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Indexing operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2936  1 n 1 2883  
279 14 Dtool_vDgfvnj9 0 6 263 2884 0 14 Dtool_vDgfvnj9 235 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Equality operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2936  5 other 1 2880  
280 14 Dtool_vDgf8nB4 0 6 264 2884 0 14 Dtool_vDgf8nB4 237 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Inequality operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2936  5 other 1 2880  
281 14 Dtool_vDgffdFk 0 6 265 2884 0 14 Dtool_vDgffdFk 235 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::Ordering operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2936  5 other 1 2880  
282 14 Dtool_vDgfeOBH 0 4 266 2882 0 14 Dtool_vDgfeOBH 268 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::set_value
//       Access: Published
//  Description: Reassigns the variable's local value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2935  5 value 1 2880  
283 14 Dtool_vDgfiqp3 0 6 267 2880 0 14 Dtool_vDgfiqp3 260 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::get_value
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2936  
284 14 Dtool_vDgflm9N 0 6 268 2880 0 14 Dtool_vDgflm9N 276 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::get_default_value
//       Access: Published
//  Description: Returns the variable's default value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2936  
285 14 Dtool_vDgfkWLx 0 6 269 2880 0 14 Dtool_vDgfkWLx 263 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::get_word
//       Access: Published
//  Description: Returns the variable's nth value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2936  1 n 1 2883  
286 14 Dtool_vDgfBIo5 0 4 270 2882 0 14 Dtool_vDgfBIo5 340 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::set_word
//       Access: Published
//  Description: Reassigns the variable's nth value.  This makes a
//               local copy of the variable's overall value.
//////////////////////////////////////////////////////////////////// 3 4 this 3 2935  1 n 1 2883  5 value 1 2880  
287 14 Dtool_vDgfjh74 0 6 258 2880 0 14 Dtool_vDgfjh74 275 ////////////////////////////////////////////////////////////////////
//     Function: ConfigVariableString::string typecast operator
//       Access: Published
//  Description: Returns the variable's value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2936  
288 14 Dtool_vDgfOkFn 0 7 282 2940 1725 14 Dtool_vDgfOkFn 0 1 4 copy 1 2938  
289 14 Dtool_vDgfpSSS 0 7 282 2940 1725 14 Dtool_vDgfpSSS 0 1 4 copy 1 2941  
290 14 Dtool_vDgfiiPg 0 7 282 2940 1725 14 Dtool_vDgfiiPg 0 2 4 self 1 2943  6 source 1 2943  
291 14 Dtool_vDgf2uc9 0 6 283 2914 0 14 Dtool_vDgf2uc9 0 1 4 this 3 2938  
292 14 Dtool_vDgfnncp 0 6 284 2886 0 14 Dtool_vDgfnncp 0 2 4 this 3 2938  1 n 1 2914  
293 14 Dtool_vDgfEWJ2 0 6 285 2886 0 14 Dtool_vDgfEWJ2 0 2 4 this 3 2938  1 n 1 2914  
294 14 Dtool_vDgfO8w6 0 6 286 2880 0 14 Dtool_vDgfO8w6 0 1 4 this 3 2938  
295 14 Dtool_vDgfB17T 0 6 287 2880 0 14 Dtool_vDgfB17T 0 3 4 this 3 2938  1 n 1 2914  5 count 1 2914  
296 14 Dtool_vDgfrlQw 0 6 288 2883 0 14 Dtool_vDgfrlQw 0 1 4 this 3 2938  
297 14 Dtool_vDgfPCkU 0 6 289 2883 0 14 Dtool_vDgfPCkU 0 1 4 this 3 2938  
298 14 Dtool_vDgfst0N 0 6 290 2883 0 14 Dtool_vDgfst0N 0 4 4 this 3 2938  4 self 1 2943  4 view 1 2945  5 flags 1 2883  
299 14 Dtool_vDgfvtDf 0 4 291 2882 0 14 Dtool_vDgfvtDf 0 3 4 this 3 2938  4 self 1 2943  4 view 1 2945  
300 14 Dtool_vDgfy3l9 0 4 279 2882 0 14 Dtool_vDgfy3l9 0 1 4 this 3 2947  
301 14 Dtool_vDgfDO_Y 0 4 280 2882 0 14 Dtool_vDgfDO_Y 0 2 4 this 3 2948  3 out 1 2887  
302 14 Dtool_vDgfrcp6 0 6 277 2884 0 14 Dtool_vDgfrcp6 372 ////////////////////////////////////////////////////////////////////
//     Function: PointerToVoid::is_null
//       Access: Published
//  Description: Returns true if the PointerTo is a NULL pointer,
//               false otherwise.  (Direct comparison to a NULL
//               pointer also works.)
//////////////////////////////////////////////////////////////////// 1 4 this 3 2950  
303 14 Dtool_vDgfYp0r 0 6 278 2914 0 14 Dtool_vDgfYp0r 219 ////////////////////////////////////////////////////////////////////
//     Function: PointerToVoid::get_hash
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2950  
304 14 Dtool_vDgfb8ol 0 7 299 2954 1739 14 Dtool_vDgfb8ol 0 1 4 copy 1 2952  
305 14 Dtool_vDgfCK16 0 7 299 2954 1739 14 Dtool_vDgfCK16 0 1 4 copy 1 2955  
306 14 Dtool_vDgfA4KV 0 7 299 2954 1739 14 Dtool_vDgfA4KV 0 2 4 self 1 2943  6 source 1 2943  
307 14 Dtool_vDgf3KKa 0 6 300 2914 0 14 Dtool_vDgf3KKa 0 1 4 this 3 2952  
308 14 Dtool_vDgfxmeB 0 6 301 2957 0 14 Dtool_vDgfxmeB 0 2 4 this 3 2952  1 n 1 2914  
309 14 Dtool_vDgfBs41 0 6 302 2957 0 14 Dtool_vDgfBs41 0 2 4 this 3 2952  1 n 1 2914  
310 14 Dtool_vDgf5XDU 0 6 303 2880 0 14 Dtool_vDgf5XDU 0 1 4 this 3 2952  
311 14 Dtool_vDgfVswo 0 6 304 2880 0 14 Dtool_vDgfVswo 0 3 4 this 3 2952  1 n 1 2914  5 count 1 2914  
312 14 Dtool_vDgfrYtN 0 6 305 2883 0 14 Dtool_vDgfrYtN 0 1 4 this 3 2952  
313 14 Dtool_vDgfK31w 0 6 306 2883 0 14 Dtool_vDgfK31w 0 1 4 this 3 2952  
314 14 Dtool_vDgfNCjG 0 6 307 2883 0 14 Dtool_vDgfNCjG 0 4 4 this 3 2952  4 self 1 2943  4 view 1 2945  5 flags 1 2883  
315 14 Dtool_vDgfFyEN 0 4 308 2882 0 14 Dtool_vDgfFyEN 0 3 4 this 3 2952  4 self 1 2943  4 view 1 2945  
316 14 Dtool_vDgf6tah 0 4 296 2882 0 14 Dtool_vDgf6tah 0 1 4 this 3 2958  
317 14 Dtool_vDgfL9NI 0 4 297 2882 0 14 Dtool_vDgfL9NI 0 2 4 this 3 2959  3 out 1 2887  
318 14 Dtool_vDgfw0oZ 0 7 316 2963 1753 14 Dtool_vDgfw0oZ 0 1 4 copy 1 2961  
319 14 Dtool_vDgfA_J2 0 7 316 2963 1753 14 Dtool_vDgfA_J2 0 1 4 copy 1 2964  
320 14 Dtool_vDgfyI2B 0 7 316 2963 1753 14 Dtool_vDgfyI2B 0 2 4 self 1 2943  6 source 1 2943  
321 14 Dtool_vDgfAAHC 0 6 317 2914 0 14 Dtool_vDgfAAHC 0 1 4 this 3 2961  
322 14 Dtool_vDgfUudi 0 6 318 2883 0 14 Dtool_vDgfUudi 0 2 4 this 3 2961  1 n 1 2914  
323 14 Dtool_vDgf5vUQ 0 6 319 2883 0 14 Dtool_vDgf5vUQ 0 2 4 this 3 2961  1 n 1 2914  
324 14 Dtool_vDgf6KKu 0 6 320 2880 0 14 Dtool_vDgf6KKu 0 1 4 this 3 2961  
325 14 Dtool_vDgfSNVu 0 6 321 2880 0 14 Dtool_vDgfSNVu 0 3 4 this 3 2961  1 n 1 2914  5 count 1 2914  
326 14 Dtool_vDgfURN7 0 6 322 2883 0 14 Dtool_vDgfURN7 0 1 4 this 3 2961  
327 14 Dtool_vDgfIiJn 0 6 323 2883 0 14 Dtool_vDgfIiJn 0 1 4 this 3 2961  
328 14 Dtool_vDgfwEQz 0 6 324 2883 0 14 Dtool_vDgfwEQz 0 4 4 this 3 2961  4 self 1 2943  4 view 1 2945  5 flags 1 2883  
329 14 Dtool_vDgfrQLr 0 4 325 2882 0 14 Dtool_vDgfrQLr 0 3 4 this 3 2961  4 self 1 2943  4 view 1 2945  
330 14 Dtool_vDgf0b1d 0 4 313 2882 0 14 Dtool_vDgf0b1d 0 1 4 this 3 2966  
331 14 Dtool_vDgf7SJI 0 4 314 2882 0 14 Dtool_vDgf7SJI 0 2 4 this 3 2967  3 out 1 2887  
332 14 Dtool_vDgfiaPN 0 7 333 2971 1767 14 Dtool_vDgfiaPN 0 1 4 copy 1 2969  
333 14 Dtool_vDgfFege 0 7 333 2971 1767 14 Dtool_vDgfFege 0 1 4 copy 1 2972  
334 14 Dtool_vDgfjuks 0 7 333 2971 1767 14 Dtool_vDgfjuks 0 2 4 self 1 2943  6 source 1 2943  
335 14 Dtool_vDgf6lat 0 6 334 2914 0 14 Dtool_vDgf6lat 0 1 4 this 3 2969  
336 14 Dtool_vDgfZSAv 0 6 335 2974 0 14 Dtool_vDgfZSAv 0 2 4 this 3 2969  1 n 1 2914  
337 14 Dtool_vDgf3Rdm 0 6 336 2974 0 14 Dtool_vDgf3Rdm 0 2 4 this 3 2969  1 n 1 2914  
338 14 Dtool_vDgfeEod 0 6 337 2880 0 14 Dtool_vDgfeEod 0 1 4 this 3 2969  
339 14 Dtool_vDgfaNne 0 6 338 2880 0 14 Dtool_vDgfaNne 0 3 4 this 3 2969  1 n 1 2914  5 count 1 2914  
340 14 Dtool_vDgf9K1R 0 6 339 2883 0 14 Dtool_vDgf9K1R 0 1 4 this 3 2969  
341 14 Dtool_vDgf1msB 0 6 340 2883 0 14 Dtool_vDgf1msB 0 1 4 this 3 2969  
342 14 Dtool_vDgfmgOy 0 6 341 2883 0 14 Dtool_vDgfmgOy 0 4 4 this 3 2969  4 self 1 2943  4 view 1 2945  5 flags 1 2883  
343 14 Dtool_vDgf_LAS 0 4 342 2882 0 14 Dtool_vDgf_LAS 0 3 4 this 3 2969  4 self 1 2943  4 view 1 2945  
344 14 Dtool_vDgf_ZKV 0 4 330 2882 0 14 Dtool_vDgf_ZKV 0 1 4 this 3 2975  
345 14 Dtool_vDgfYDh_ 0 4 331 2882 0 14 Dtool_vDgfYDh_ 0 2 4 this 3 2976  3 out 1 2887  
346 14 Dtool_vDgfItBT 0 6 345 2884 0 14 Dtool_vDgfItBT 0 2 3 sym 1 2880  3 def 1 2884  
347 14 Dtool_vDgfdJ1K 0 6 345 2884 0 14 Dtool_vDgfdJ1K 0 1 3 sym 1 2880  
348 14 Dtool_vDgfoKMu 0 6 346 2883 0 14 Dtool_vDgfoKMu 0 2 3 sym 1 2880  3 def 1 2883  
349 14 Dtool_vDgf6AVX 0 6 346 2883 0 14 Dtool_vDgf6AVX 0 1 3 sym 1 2880  
350 14 Dtool_vDgfyb_D 0 6 347 2957 0 14 Dtool_vDgfyb_D 0 2 3 sym 1 2880  3 def 1 2957  
351 14 Dtool_vDgfjW43 0 6 347 2957 0 14 Dtool_vDgfjW43 0 1 3 sym 1 2880  
352 14 Dtool_vDgfhf_c 0 6 348 2886 0 14 Dtool_vDgfhf_c 0 2 3 sym 1 2880  3 def 1 2886  
353 14 Dtool_vDgf8wvR 0 6 348 2886 0 14 Dtool_vDgf8wvR 0 1 3 sym 1 2880  
354 14 Dtool_vDgfGDMQ 0 6 349 2880 0 14 Dtool_vDgfGDMQ 0 2 3 sym 1 2880  3 def 1 2880  
355 14 Dtool_vDgfAIIq 0 6 349 2880 0 14 Dtool_vDgfAIIq 0 1 3 sym 1 2880  
356 14 Dtool_vDgfxUgk 0 7 363 2894 1786 14 Dtool_vDgfxUgk 0 0 
357 14 Dtool_vDgfzohW 0 7 363 2894 1786 14 Dtool_vDgfzohW 0 1 4 copy 1 2929  
358 14 Dtool_vDgfmjlH 0 7 363 2894 1786 14 Dtool_vDgfmjlH 0 1 9 directory 1 2910  
359 14 Dtool_vDgftuI2 0 7 363 2894 1786 14 Dtool_vDgftuI2 0 2 4 path 1 2880  9 separator 1 2880  
360 14 Dtool_vDgfbE_t 0 7 363 2894 1786 14 Dtool_vDgfbE_t 0 1 4 path 1 2880  
361 14 Dtool_vDgf4_r9 0 6 364 2894 0 14 Dtool_vDgf4_r9 0 2 4 this 3 2894  4 copy 1 2929  
362 14 Dtool_vDgf_ecb 0 4 366 2882 0 14 Dtool_vDgf_ecb 0 1 4 this 3 2894  
363 14 Dtool_vDgfdvve 0 4 367 2882 0 14 Dtool_vDgfdvve 0 2 4 this 3 2894  9 directory 1 2910  
364 14 Dtool_vDgfSYWa 0 4 368 2882 0 14 Dtool_vDgfSYWa 0 2 4 this 3 2894  9 directory 1 2910  
365 14 Dtool_vDgfAcLB 0 4 369 2882 0 14 Dtool_vDgfAcLB 0 2 4 this 3 2894  4 path 1 2929  
366 14 Dtool_vDgfwDyg 0 4 369 2882 0 14 Dtool_vDgfwDyg 0 3 4 this 3 2894  4 path 1 2880  9 separator 1 2880  
367 14 Dtool_vDgfufoY 0 4 369 2882 0 14 Dtool_vDgfufoY 0 2 4 this 3 2894  4 path 1 2880  
368 14 Dtool_vDgfihym 0 4 370 2882 0 14 Dtool_vDgfihym 0 2 4 this 3 2894  4 path 1 2929  
369 14 Dtool_vDgfbEii 0 6 371 2884 0 14 Dtool_vDgfbEii 0 1 4 this 3 2929  
370 14 Dtool_vDgfQk9K 0 6 372 2883 0 14 Dtool_vDgfQk9K 0 1 4 this 3 2929  
371 14 Dtool_vDgfeLbZ 0 6 373 2910 0 14 Dtool_vDgfeLbZ 0 2 4 this 3 2929  1 n 1 2883  
372 14 Dtool_vDgf86AY 0 7 374 2916 1841 14 Dtool_vDgf86AY 0 2 4 this 3 2929  8 filename 1 2910  
373 14 Dtool_vDgfkIB3 0 7 375 2934 1776 14 Dtool_vDgfkIB3 445 ////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::find_all_files
//       Access: Published
//  Description: This variant of find_all_files() returns the new
//               Results object, instead of filling on in on the
//               parameter list.  This is a little more convenient to
//               call from Python.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2929  8 filename 1 2910  
374 14 Dtool_vDgfOBvK 0 6 375 2883 0 14 Dtool_vDgfOBvK 0 3 4 this 3 2929  8 filename 1 2910  7 results 1 2934  
375 14 Dtool_vDgfgvcZ 0 7 376 2916 1841 14 Dtool_vDgfgvcZ 531 ////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::search_path
//       Access: Published, Static
//  Description: A quick-and-easy way to search a searchpath for a
//               file when you don't feel like building or keeping
//               around a DSearchPath object.  This simply
//               constructs a temporary DSearchPath based on the
//               indicated path string, and searches that.
//////////////////////////////////////////////////////////////////// 3 8 filename 1 2910  4 path 1 2880  9 separator 1 2880  
376 14 Dtool_vDgfFJd4 0 7 376 2916 1841 14 Dtool_vDgfFJd4 531 ////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::search_path
//       Access: Published, Static
//  Description: A quick-and-easy way to search a searchpath for a
//               file when you don't feel like building or keeping
//               around a DSearchPath object.  This simply
//               constructs a temporary DSearchPath based on the
//               indicated path string, and searches that.
//////////////////////////////////////////////////////////////////// 2 8 filename 1 2910  4 path 1 2880  
377 14 Dtool_vDgffyrW 0 4 377 2882 0 14 Dtool_vDgffyrW 0 3 4 this 3 2929  3 out 1 2887  9 separator 1 2880  
378 14 Dtool_vDgfx5QI 0 4 377 2882 0 14 Dtool_vDgfx5QI 0 2 4 this 3 2929  3 out 1 2887  
379 14 Dtool_vDgfGTuw 0 4 378 2882 0 14 Dtool_vDgfGTuw 0 3 4 this 3 2929  3 out 1 2887  12 indent_level 1 2883  
380 14 Dtool_vDgfIVg1 0 4 378 2882 0 14 Dtool_vDgfIVg1 0 2 4 this 3 2929  3 out 1 2887  
381 14 Dtool_vDgfjIw0 0 7 353 2934 1776 14 Dtool_vDgfjIw0 0 0 
382 14 Dtool_vDgfx6Kt 0 7 353 2934 1776 14 Dtool_vDgfx6Kt 0 1 4 copy 1 2978  
383 14 Dtool_vDgfaaFk 0 6 354 2934 0 14 Dtool_vDgfaaFk 0 2 4 this 3 2934  4 copy 1 2978  
384 14 Dtool_vDgfkmuw 0 4 356 2882 0 14 Dtool_vDgfkmuw 0 1 4 this 3 2934  
385 14 Dtool_vDgf9HaP 0 6 357 2883 0 14 Dtool_vDgf9HaP 0 1 4 this 3 2978  
386 14 Dtool_vDgf6aQP 0 6 358 2910 0 14 Dtool_vDgf6aQP 0 2 4 this 3 2978  1 n 1 2883  
387 14 Dtool_vDgfiKMD 0 7 359 2916 1841 14 Dtool_vDgfiKMD 872 // Filename: dSearchPath.I
// Created by:  drose (01Jul00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::Results::operator []
//       Access: Published
//  Description: Returns the nth filename in the set.  This method is
//               defined to make the Results object appear to be a
//               list in Python.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2978  1 n 1 2883  
388 14 Dtool_vDgfMQN9 0 6 360 2883 0 14 Dtool_vDgfMQN9 382 ////////////////////////////////////////////////////////////////////
//     Function: DSearchPath::Results::size
//       Access: Published
//  Description: Returns the num of filenames in the set.  This method
//               is defined to make the Results object appear to be a
//               list in Python.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2978  
389 14 Dtool_vDgfU5RW 0 4 361 2882 0 14 Dtool_vDgfU5RW 0 2 4 this 3 2978  3 out 1 2887  
390 14 Dtool_vDgf2EVj 0 4 362 2882 0 14 Dtool_vDgf2EVj 0 3 4 this 3 2978  3 out 1 2887  12 indent_level 1 2883  
391 14 Dtool_vDgfcV9T 0 4 362 2882 0 14 Dtool_vDgfcV9T 0 2 4 this 3 2978  3 out 1 2887  
392 14 Dtool_vDgfH3XS 0 6 380 2884 0 14 Dtool_vDgfH3XS 826 // Filename: executionEnvironment.I
// Created by:  drose (15May00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::has_environment_variable
//       Access: Public, Static
//  Description: Returns true if the indicated environment variable
//               is defined.
//////////////////////////////////////////////////////////////////// 1 3 var 1 2880  
393 14 Dtool_vDgfqf8R 0 6 381 2880 0 14 Dtool_vDgfqf8R 396 ////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_environment_variable
//       Access: Public, Static
//  Description: Returns the definition of the indicated environment
//               variable, or the empty string if the variable is
//               undefined.
//////////////////////////////////////////////////////////////////// 1 3 var 1 2880  
394 14 Dtool_vDgfLmhJ 0 4 382 2882 0 14 Dtool_vDgfLmhJ 329 ////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::set_environment_variable
//       Access: Public, Static
//  Description: Changes the definition of the indicated environment
//               variable.
//////////////////////////////////////////////////////////////////// 2 3 var 1 2880  5 value 1 2880  
395 14 Dtool_vDgfe_G_ 0 4 383 2882 0 14 Dtool_vDgfe_G_ 588 ////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::shadow_environment_variable
//       Access: Public, Static
//  Description: Changes the apparent definition of the indicated
//               environment variable by masking it within this class
//               with a new value.  This does not change the actual
//               environment variable, but future calls to
//               get_environment_variable() will return this new
//               value.
//////////////////////////////////////////////////////////////////// 2 3 var 1 2880  5 value 1 2880  
396 14 Dtool_vDgf9ku2 0 4 384 2882 0 14 Dtool_vDgf9ku2 399 ////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::clear_shadow
//       Access: Public, Static
//  Description: Removes a value set by a previous call to
//               shadow_environment_variable(), and lets the actual
//               value of the variable show again.
//////////////////////////////////////////////////////////////////// 1 3 var 1 2880  
397 14 Dtool_vDgf156e 0 6 385 2880 0 14 Dtool_vDgf156e 0 1 3 str 1 2880  
398 14 Dtool_vDgfz8EB 0 6 386 2883 0 14 Dtool_vDgfz8EB 348 ////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_num_args
//       Access: Public, Static
//  Description: Returns the number of command-line arguments
//               available, not counting arg 0, the binary name.
//////////////////////////////////////////////////////////////////// 0 
399 14 Dtool_vDgfl2fT 0 6 387 2880 0 14 Dtool_vDgfl2fT 462 ////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_arg
//       Access: Public, Static
//  Description: Returns the nth command-line argument.  The index n
//               must be in the range [0 .. get_num_args()).  The
//               first parameter, n == 0, is the first actual
//               parameter, not the binary name.
//////////////////////////////////////////////////////////////////// 1 1 n 1 2883  
400 14 Dtool_vDgf_LAg 0 6 388 2880 0 14 Dtool_vDgf_LAg 352 ////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_binary_name
//       Access: Public, Static
//  Description: Returns the name of the binary executable that
//               started this program, if it can be determined.
//////////////////////////////////////////////////////////////////// 0 
401 14 Dtool_vDgfpyuE 0 6 389 2880 0 14 Dtool_vDgfpyuE 349 ////////////////////////////////////////////////////////////////////
//     Function: ExecutionEnvironment::get_dtool_name
//       Access: Public, Static
//  Description: Returns the name of the libdtool DLL that
//               is used in this program, if it can be determined.
//////////////////////////////////////////////////////////////////// 0 
402 14 Dtool_vDgfDDsB 0 7 390 2916 1841 14 Dtool_vDgfDDsB 0 0 
403 14 Dtool_vDgfpZ5U 0 7 424 2980 1837 14 Dtool_vDgfpZ5U 222 ////////////////////////////////////////////////////////////////////
//     Function: FileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
404 14 Dtool_vDgfIhSy 0 7 424 2980 1837 14 Dtool_vDgfIhSy 222 ////////////////////////////////////////////////////////////////////
//     Function: FileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 8 filename 1 2880  4 mode 1 2800  
405 14 Dtool_vDgfn3do 0 7 424 2980 1837 14 Dtool_vDgfn3do 222 ////////////////////////////////////////////////////////////////////
//     Function: FileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
406 14 Dtool_vDgfb85a 0 4 426 2882 0 14 Dtool_vDgfb85a 216 ////////////////////////////////////////////////////////////////////
//     Function: FileStream::open
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 this 3 2980  8 filename 1 2880  4 mode 1 2800  
407 14 Dtool_vDgfCiyr 0 4 426 2882 0 14 Dtool_vDgfCiyr 216 ////////////////////////////////////////////////////////////////////
//     Function: FileStream::open
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 2980  8 filename 1 2880  
408 14 Dtool_vDgfs2nM 0 4 427 2882 0 14 Dtool_vDgfs2nM 217 ////////////////////////////////////////////////////////////////////
//     Function: FileStream::close
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 this 3 2980  
409 14 Dtool_vDgfrDS9 0 4 422 2882 0 14 Dtool_vDgfrDS9 0 1 4 this 3 2981  
410 14 Dtool_vDgfbMFg 0 6 411 2890 0 14 Dtool_vDgfbMFg 0 1 4 this 3 2981  
411 14 Dtool_vDgfpp1t 0 6 412 2981 0 14 Dtool_vDgfpp1t 0 1 4 this 3 2890  
412 14 Dtool_vDgf4uln 0 6 407 2883 0 14 Dtool_vDgf4uln 0 1 4 this 3 2890  
413 14 Dtool_vDgf9n9K 0 6 408 2982 0 14 Dtool_vDgf9n9K 0 1 4 this 3 2890  
414 14 Dtool_vDgfopQR 0 4 409 2882 0 14 Dtool_vDgfopQR 0 3 4 this 3 2890  3 off 1 2983  3 dir 1 2799  
415 14 Dtool_vDgfIWSF 0 4 409 2882 0 14 Dtool_vDgfIWSF 0 2 4 this 3 2890  3 pos 1 2982  
416 14 Dtool_vDgfFYBG 0 6 406 2984 0 14 Dtool_vDgfFYBG 0 1 4 this 3 2890  
417 14 Dtool_vDgf7W6h 0 6 420 2887 0 14 Dtool_vDgf7W6h 0 1 4 this 3 2981  
418 14 Dtool_vDgfHU9t 0 6 421 2981 0 14 Dtool_vDgfHU9t 0 1 4 this 3 2887  
419 14 Dtool_vDgfiovs 0 4 415 2882 0 14 Dtool_vDgfiovs 0 2 4 this 3 2887  1 c 1 2915  
420 14 Dtool_vDgfstz3 0 4 416 2882 0 14 Dtool_vDgfstz3 0 1 4 this 3 2887  
421 14 Dtool_vDgfwJlq 0 6 417 2982 0 14 Dtool_vDgfwJlq 0 1 4 this 3 2887  
422 14 Dtool_vDgffa4w 0 4 418 2882 0 14 Dtool_vDgffa4w 0 3 4 this 3 2887  3 off 1 2983  3 dir 1 2799  
423 14 Dtool_vDgf9D5k 0 4 418 2882 0 14 Dtool_vDgf9D5k 0 2 4 this 3 2887  3 pos 1 2982  
424 14 Dtool_vDgfT3JG 0 6 414 2984 0 14 Dtool_vDgfT3JG 0 1 4 this 3 2887  
425 14 Dtool_vDgfnXqS 0 6 400 2884 0 14 Dtool_vDgfnXqS 0 1 4 this 3 2985  
426 14 Dtool_vDgfZWpE 0 6 401 2884 0 14 Dtool_vDgfZWpE 0 1 4 this 3 2985  
427 14 Dtool_vDgfZTNl 0 6 402 2884 0 14 Dtool_vDgfZTNl 0 1 4 this 3 2985  
428 14 Dtool_vDgfBfVl 0 6 403 2884 0 14 Dtool_vDgfBfVl 0 1 4 this 3 2985  
429 14 Dtool_vDgfRFcH 0 4 404 2882 0 14 Dtool_vDgfRFcH 0 1 4 this 3 2984  
430 14 Dtool_vDgf0xIC 0 7 430 2916 1841 14 Dtool_vDgf0xIC 225 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Copy Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 2910  
431 14 Dtool_vDgfz3ik 0 7 430 2916 1841 14 Dtool_vDgfz3ik 0 2 7 dirname 1 2910  8 basename 1 2910  
432 14 Dtool_vDgfLYs9 0 7 430 2916 1841 14 Dtool_vDgfLYs9 704 // Filename: filename.I
// Created by:  drose (18Jan99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Filename::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
433 14 Dtool_vDgfzHmO 0 7 430 2916 1841 14 Dtool_vDgfzHmO 704 // Filename: filename.I
// Created by:  drose (18Jan99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Filename::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
434 14 Dtool_vDgfPG_p 0 7 430 2916 1841 14 Dtool_vDgfPG_p 220 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
435 14 Dtool_vDgfYS9H 0 7 430 2916 1841 14 Dtool_vDgfYS9H 220 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
436 14 Dtool_vDgfFi19 0 6 432 2943 0 14 Dtool_vDgfFi19 0 2 4 this 3 2910  4 self 1 2943  
437 14 Dtool_vDgfC1b2 0 7 433 2916 1841 14 Dtool_vDgfC1b2 240 ////////////////////////////////////////////////////////////////////
//     Function: Filename::text_filename named constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2910  
438 14 Dtool_vDgffamt 0 7 433 2916 1841 14 Dtool_vDgffamt 240 ////////////////////////////////////////////////////////////////////
//     Function: Filename::text_filename named constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
439 14 Dtool_vDgfbJPp 0 7 434 2916 1841 14 Dtool_vDgfbJPp 242 ////////////////////////////////////////////////////////////////////
//     Function: Filename::binary_filename named constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2910  
440 14 Dtool_vDgfuv92 0 7 434 2916 1841 14 Dtool_vDgfuv92 242 ////////////////////////////////////////////////////////////////////
//     Function: Filename::binary_filename named constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
441 14 Dtool_vDgfPXPP 0 7 435 2916 1841 14 Dtool_vDgfPXPP 239 ////////////////////////////////////////////////////////////////////
//     Function: Filename::dso_filename named constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
442 14 Dtool_vDgf_2MI 0 7 436 2916 1841 14 Dtool_vDgf_2MI 246 ////////////////////////////////////////////////////////////////////
//     Function: Filename::executable_filename named constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
443 14 Dtool_vDgfKsMA 0 7 437 2916 1841 14 Dtool_vDgfKsMA 348 ////////////////////////////////////////////////////////////////////
//     Function: Filename::pattern_filename named constructor
//       Access: Published
//  Description: Constructs a filename that represents a sequence of
//               numbered files.  See set_pattern().
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
444 14 Dtool_vDgfIF4r 0 7 438 2916 1841 14 Dtool_vDgfIF4r 0 2 11 os_specific 1 2880  4 type 1 2803  
445 14 Dtool_vDgf9IuR 0 7 438 2916 1841 14 Dtool_vDgf9IuR 0 1 11 os_specific 1 2880  
446 14 Dtool_vDgfuUyZ 0 7 439 2916 1841 14 Dtool_vDgfuUyZ 0 2 11 os_specific 1 2880  4 type 1 2803  
447 14 Dtool_vDgfRbbl 0 7 439 2916 1841 14 Dtool_vDgfRbbl 0 1 11 os_specific 1 2880  
448 14 Dtool_vDgfZ4vm 0 7 440 2916 1841 14 Dtool_vDgfZ4vm 0 2 11 user_string 1 2880  4 type 1 2803  
449 14 Dtool_vDgf_Iq5 0 7 440 2916 1841 14 Dtool_vDgf_Iq5 0 1 11 user_string 1 2880  
450 14 Dtool_vDgfZ_3D 0 7 441 2916 1841 14 Dtool_vDgfZ_3D 0 4 7 dirname 1 2880  6 prefix 1 2880  6 suffix 1 2880  4 type 1 2803  
451 14 Dtool_vDgfLpPZ 0 7 441 2916 1841 14 Dtool_vDgfLpPZ 0 3 7 dirname 1 2880  6 prefix 1 2880  6 suffix 1 2880  
452 14 Dtool_vDgfwIGw 0 7 441 2916 1841 14 Dtool_vDgfwIGw 0 2 7 dirname 1 2880  6 prefix 1 2880  
453 14 Dtool_vDgff_0B 0 6 442 2910 0 14 Dtool_vDgff_0B 0 0 
454 14 Dtool_vDgfeDx2 0 6 443 2910 0 14 Dtool_vDgfeDx2 0 0 
455 14 Dtool_vDgf4CLy 0 6 444 2910 0 14 Dtool_vDgf4CLy 0 0 
456 14 Dtool_vDgfw0eY 0 6 445 2910 0 14 Dtool_vDgfw0eY 0 0 
457 14 Dtool_vDgfe4GP 0 6 446 2916 0 14 Dtool_vDgfe4GP 233 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Copy assignment operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2916  4 copy 1 2910  
458 14 Dtool_vDgf6V61 0 6 446 2916 0 14 Dtool_vDgf6V61 228 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Assignment operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2916  8 filename 1 2880  
459 14 Dtool_vDgfB1un 0 6 446 2916 0 14 Dtool_vDgfB1un 228 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Assignment operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2916  8 filename 1 2880  
460 14 Dtool_vDgfAn_g 0 6 446 2916 0 14 Dtool_vDgfAn_g 228 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Assignment operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2916  8 filename 1 2880  
461 14 Dtool_vDgfmyvU 0 6 448 2880 0 14 Dtool_vDgfmyvU 214 ////////////////////////////////////////////////////////////////////
//     Function: Filename::c_str
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
462 14 Dtool_vDgfOFzc 0 6 449 2884 0 14 Dtool_vDgfOFzc 214 ////////////////////////////////////////////////////////////////////
//     Function: Filename::empty
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
463 14 Dtool_vDgfgE4s 0 6 450 2914 0 14 Dtool_vDgfgE4s 215 ////////////////////////////////////////////////////////////////////
//     Function: Filename::length
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
464 14 Dtool_vDgf6cHo 0 6 451 2915 0 14 Dtool_vDgf6cHo 226 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Indexing operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2910  1 n 1 2883  
465 14 Dtool_vDgfkJiX 0 6 452 2880 0 14 Dtool_vDgfkJiX 215 ////////////////////////////////////////////////////////////////////
//     Function: Filename::substr
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 2910  5 begin 1 2914  3 end 1 2914  
466 14 Dtool_vDgfMKvI 0 6 452 2880 0 14 Dtool_vDgfMKvI 215 ////////////////////////////////////////////////////////////////////
//     Function: Filename::substr
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2910  5 begin 1 2914  
467 14 Dtool_vDgfXGAt 0 6 453 2916 0 14 Dtool_vDgfXGAt 413 ////////////////////////////////////////////////////////////////////
//     Function: Filename::operator +=
//       Access: Published
//  Description: Appends the other filename onto the end of this one.
//               This does not introduce an intervening slash, but see
//               the Filename constructor that takes two parameters.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2916  5 other 1 2880  
468 14 Dtool_vDgfwk78 0 7 454 2916 1841 14 Dtool_vDgfwk78 312 ////////////////////////////////////////////////////////////////////
//     Function: Filename::operator +
//       Access: Published
//  Description: Returns a new Filename representing the concatenation
//               of the two filenames.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2910  5 other 1 2880  
469 14 Dtool_vDgfFzJX 0 6 455 2880 0 14 Dtool_vDgfFzJX 382 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_fullpath
//       Access: Published
//  Description: Returns the entire filename: directory, basename,
//               extension.  This is the same thing returned by the
//               string typecast operator.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
470 14 Dtool_vDgfEfKG 0 6 456 2880 0 14 Dtool_vDgfEfKG 296 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_fullpath_w
//       Access: Published
//  Description: Returns the entire filename as a wide-character
//               string.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
471 14 Dtool_vDgfnZLo 0 6 457 2880 0 14 Dtool_vDgfnZLo 380 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_dirname
//       Access: Published
//  Description: Returns the directory part of the filename.  This is
//               everything in the filename up to, but not including
//               the rightmost slash.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
472 14 Dtool_vDgfdGTD 0 6 458 2880 0 14 Dtool_vDgfdGTD 387 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_basename
//       Access: Published
//  Description: Returns the basename part of the filename.  This is
//               everything in the filename after the rightmost slash,
//               including any extensions.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
473 14 Dtool_vDgfpN0c 0 6 459 2880 0 14 Dtool_vDgfpN0c 334 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_fullpath_wo_extension
//       Access: Published
//  Description: Returns the full filename--directory and basename
//               parts--except for the extension.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
474 14 Dtool_vDgfNi_I 0 6 460 2880 0 14 Dtool_vDgfNi_I 322 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_basename_wo_extension
//       Access: Published
//  Description: Returns the basename part of the filename, without
//               the file extension.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
475 14 Dtool_vDgf_MQ8 0 6 461 2880 0 14 Dtool_vDgf_MQ8 383 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_extension
//       Access: Published
//  Description: Returns the file extension.  This is everything after
//               the rightmost dot, if there is one, or the empty
//               string if there is not.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
476 14 Dtool_vDgfoUip 0 4 462 2882 0 14 Dtool_vDgfoUip 68 // You can also use any of these to reassign pieces of the filename. 2 4 this 3 2916  1 s 1 2880  
477 14 Dtool_vDgfSdlj 0 4 463 2882 0 14 Dtool_vDgfSdlj 68 // You can also use any of these to reassign pieces of the filename. 2 4 this 3 2916  1 s 1 2880  
478 14 Dtool_vDgfSasV 0 4 464 2882 0 14 Dtool_vDgfSasV 0 2 4 this 3 2916  1 s 1 2880  
479 14 Dtool_vDgfu0Xc 0 4 465 2882 0 14 Dtool_vDgfu0Xc 0 2 4 this 3 2916  1 s 1 2880  
480 14 Dtool_vDgfQChI 0 4 466 2882 0 14 Dtool_vDgfQChI 0 2 4 this 3 2916  1 s 1 2880  
481 14 Dtool_vDgfx6fv 0 4 467 2882 0 14 Dtool_vDgfx6fv 0 2 4 this 3 2916  1 s 1 2880  
482 14 Dtool_vDgfK9mc 0 4 468 2882 0 14 Dtool_vDgfK9mc 445 ////////////////////////////////////////////////////////////////////
//     Function: Filename::set_binary
//       Access: Published
//  Description: Indicates that the filename represents a binary file.
//               This is primarily relevant to the read_file() and
//               write_file() methods, so they can set the appropriate
//               flags to the OS.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2916  
483 14 Dtool_vDgfBixh 0 4 469 2882 0 14 Dtool_vDgfBixh 441 ////////////////////////////////////////////////////////////////////
//     Function: Filename::set_text
//       Access: Published
//  Description: Indicates that the filename represents a text file.
//               This is primarily relevant to the read_file() and
//               write_file() methods, so they can set the appropriate
//               flags to the OS.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2916  
484 14 Dtool_vDgfnswQ 0 6 470 2884 0 14 Dtool_vDgfnswQ 523 ////////////////////////////////////////////////////////////////////
//     Function: Filename::is_binary
//       Access: Published
//  Description: Returns true if the Filename has been indicated to
//               represent a binary file via a previous call to
//               set_binary().  It is possible that neither
//               is_binary() nor is_text() will be true, if neither
//               set_binary() nor set_text() was ever called.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
485 14 Dtool_vDgff3Vw 0 6 471 2884 0 14 Dtool_vDgff3Vw 517 ////////////////////////////////////////////////////////////////////
//     Function: Filename::is_text
//       Access: Published
//  Description: Returns true if the Filename has been indicated to
//               represent a text file via a previous call to
//               set_text().  It is possible that neither is_binary()
//               nor is_text() will be true, if neither set_binary()
//               nor set_text() was ever called.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
486 14 Dtool_vDgfOiJI 0 6 472 2884 0 14 Dtool_vDgfOiJI 459 ////////////////////////////////////////////////////////////////////
//     Function: Filename::is_binary_or_text
//       Access: Published
//  Description: Returns true either is_binary() or is_text() is true;
//               that is, that the filename has been specified as
//               either binary or text.  If this is false, the
//               filename has not been specified.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
487 14 Dtool_vDgfc7yW 0 4 473 2882 0 14 Dtool_vDgfc7yW 646 ////////////////////////////////////////////////////////////////////
//     Function: Filename::set_type
//       Access: Published
//  Description: Sets the type of the file represented by the
//               filename.  This is useful for to_os_specific(),
//               resolve_filename(), test_existence(), and all such
//               real-world access functions.  It helps the Filename
//               know how to map the internal filename to the
//               OS-specific filename (for instance, maybe executables
//               should have an .exe extension).
//////////////////////////////////////////////////////////////////// 2 4 this 3 2916  4 type 1 2803  
488 14 Dtool_vDgfELir 0 6 474 2803 0 14 Dtool_vDgfELir 325 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_type
//       Access: Published
//  Description: Returns the type of the file represented by the
//               filename, as previously set by set_type().
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
489 14 Dtool_vDgf0_BT 0 4 475 2882 0 14 Dtool_vDgf0_BT 1075 ////////////////////////////////////////////////////////////////////
//     Function: Filename::set_pattern
//       Access: Published
//  Description: Sets the flag indicating whether this is a filename
//               pattern.  When this is true, the filename is
//               understood to be a placeholder for a numbered
//               sequence of filename, such as an image sequence.  In
//               this case, a sequence of one or more hash characters
//               ("#") should appear in the filename string; these
//               characters will be filled in with the corresponding
//               number (or more) of digits representing the sequence
//               number.  Sequence numbers always begin counting at 0.
//
//               When this is true, methods like has_hash() and
//               get_hash_to_end() and get_filename_index() may be
//               called.  Methods like is_exists() will implicitly
//               test for existance of filename sequence 0.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2916  7 pattern 1 2884  
490 14 Dtool_vDgfJg4Y 0 6 476 2884 0 14 Dtool_vDgfJg4Y 321 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_pattern
//       Access: Published
//  Description: Returns the flag indicating whether this is a
//               filename pattern.  See set_pattern().
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
491 14 Dtool_vDgfNmUz 0 6 477 2884 0 14 Dtool_vDgfNmUz 651 ////////////////////////////////////////////////////////////////////
//     Function: Filename::has_hash
//       Access: Published
//  Description: Returns true if the filename is indicated to be a
//               filename pattern (that is, set_pattern(true) was
//               called), and the filename pattern did include a
//               sequence of hash marks, or false if it was not a
//               filename pattern or did not include hash marks.  If
//               this is true, then get_filename_index() will return a
//               different filename each time.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
492 14 Dtool_vDgfq4gP 0 7 478 2916 1841 14 Dtool_vDgfq4gP 0 2 4 this 3 2910  5 index 1 2883  
493 14 Dtool_vDgf4SYs 0 6 479 2880 0 14 Dtool_vDgf4SYs 375 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_hash_to_end
//       Access: Published
//  Description: Returns the part of the filename beginning at the
//               hash sequence (if any), and continuing to the end of
//               the filename.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
494 14 Dtool_vDgfIn6M 0 4 480 2882 0 14 Dtool_vDgfIn6M 0 2 4 this 3 2916  1 s 1 2880  
495 14 Dtool_vDgfTzFq 0 4 481 2882 0 14 Dtool_vDgfTzFq 0 2 4 this 3 2910  10 components 1 2987  
496 14 Dtool_vDgfMUbk 0 4 482 2882 0 14 Dtool_vDgfMUbk 0 1 4 this 3 2916  
497 14 Dtool_vDgfGI_b 0 6 483 2884 0 14 Dtool_vDgfGI_b 383 ////////////////////////////////////////////////////////////////////
//     Function: Filename::is_local
//       Access: Published
//  Description: Returns true if the filename is local, e.g. does not
//               begin with a slash, or false if the filename is fully
//               specified from the root.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
498 14 Dtool_vDgftIAk 0 6 484 2884 0 14 Dtool_vDgftIAk 782 ////////////////////////////////////////////////////////////////////
//     Function: Filename::is_fully_qualified
//       Access: Published
//  Description: Returns true if the filename is fully qualified,
//               e.g. begins with a slash.  This is almost, but not
//               quite, the same thing as !is_local().  It's not
//               exactly the same because a special case is made for
//               filenames that begin with a single dot followed by a
//               slash--these are considered to be fully qualified
//               (they are explicitly relative to the current
//               directory, and do not refer to a filename on a search
//               path somewhere).
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
499 14 Dtool_vDgf_eKM 0 4 485 2882 0 14 Dtool_vDgf_eKM 0 1 4 this 3 2916  
500 14 Dtool_vDgfudOz 0 4 485 2882 0 14 Dtool_vDgfudOz 0 2 4 this 3 2916  15 start_directory 1 2910  
501 14 Dtool_vDgftwJA 0 6 486 2884 0 14 Dtool_vDgftwJA 0 1 4 this 3 2916  
502 14 Dtool_vDgfX1o1 0 6 487 2884 0 14 Dtool_vDgfX1o1 0 1 4 this 3 2916  
503 14 Dtool_vDgfHThn 0 6 488 2880 0 14 Dtool_vDgfHThn 0 1 4 this 3 2910  
504 14 Dtool_vDgfmUcX 0 6 489 2880 0 14 Dtool_vDgfmUcX 0 1 4 this 3 2910  
505 14 Dtool_vDgfT7Xd 0 6 490 2880 0 14 Dtool_vDgfT7Xd 0 1 4 this 3 2910  
506 14 Dtool_vDgfXTVO 0 6 491 2880 0 14 Dtool_vDgfXTVO 0 1 4 this 3 2910  
507 14 Dtool_vDgfo4Sv 0 6 492 2880 0 14 Dtool_vDgfo4Sv 0 1 4 this 3 2910  
508 14 Dtool_vDgfXz2_ 0 6 493 2884 0 14 Dtool_vDgfXz2_ 0 1 4 this 3 2910  
509 14 Dtool_vDgf4vqn 0 6 494 2884 0 14 Dtool_vDgf4vqn 0 1 4 this 3 2910  
510 14 Dtool_vDgfahKY 0 6 495 2884 0 14 Dtool_vDgfahKY 0 1 4 this 3 2910  
511 14 Dtool_vDgfADlT 0 6 496 2884 0 14 Dtool_vDgfADlT 0 1 4 this 3 2910  
512 14 Dtool_vDgfdwcX 0 6 497 2884 0 14 Dtool_vDgfdwcX 0 1 4 this 3 2910  
513 14 Dtool_vDgfQRcf 0 6 498 2883 0 14 Dtool_vDgfQRcf 0 4 4 this 3 2910  5 other 1 2910  19 this_missing_is_old 1 2884  20 other_missing_is_old 1 2884  
514 14 Dtool_vDgfihlq 0 6 498 2883 0 14 Dtool_vDgfihlq 0 3 4 this 3 2910  5 other 1 2910  19 this_missing_is_old 1 2884  
515 14 Dtool_vDgf3wx_ 0 6 498 2883 0 14 Dtool_vDgf3wx_ 0 2 4 this 3 2910  5 other 1 2910  
516 14 Dtool_vDgfKJyF 0 6 499 2914 0 14 Dtool_vDgfKJyF 0 1 4 this 3 2910  
517 14 Dtool_vDgf3OVg 0 6 500 2914 0 14 Dtool_vDgf3OVg 0 1 4 this 3 2910  
518 14 Dtool_vDgfjnXJ 0 6 501 2883 0 14 Dtool_vDgfjnXJ 0 1 4 this 3 2910  
519 14 Dtool_vDgfKd7B 0 6 502 2884 0 14 Dtool_vDgfKd7B 0 3 4 this 3 2916  10 searchpath 1 2929  17 default_extension 1 2880  
520 14 Dtool_vDgfk2zY 0 6 502 2884 0 14 Dtool_vDgfk2zY 0 2 4 this 3 2916  10 searchpath 1 2929  
521 14 Dtool_vDgffEHg 0 6 503 2884 0 14 Dtool_vDgffEHg 0 3 4 this 3 2916  9 directory 1 2916  13 allow_backups 1 2884  
522 14 Dtool_vDgf85oI 0 6 503 2884 0 14 Dtool_vDgf85oI 0 2 4 this 3 2916  9 directory 1 2916  
523 14 Dtool_vDgf45N1 0 6 504 2883 0 14 Dtool_vDgf45N1 0 2 4 this 3 2916  10 searchpath 1 2929  
524 14 Dtool_vDgfQaV2 0 6 505 2943 0 14 Dtool_vDgfQaV2 0 1 4 this 3 2910  
525 14 Dtool_vDgfPKbx 0 6 505 2884 0 14 Dtool_vDgfPKbx 0 2 4 this 3 2910  8 contents 1 2987  
526 14 Dtool_vDgfNbBG 0 6 506 2884 0 14 Dtool_vDgfNbBG 0 2 4 this 3 2910  6 stream 1 2989  
527 14 Dtool_vDgfZ4Va 0 6 506 2884 0 14 Dtool_vDgfZ4Va 0 2 4 this 3 2910  6 stream 1 2990  
528 14 Dtool_vDgf8bVc 0 6 507 2884 0 14 Dtool_vDgf8bVc 0 3 4 this 3 2910  6 stream 1 2991  8 truncate 1 2884  
529 14 Dtool_vDgfsSM1 0 6 507 2884 0 14 Dtool_vDgfsSM1 0 2 4 this 3 2910  6 stream 1 2991  
530 14 Dtool_vDgfqfrI 0 6 507 2884 0 14 Dtool_vDgfqfrI 0 3 4 this 3 2910  6 stream 1 2992  8 truncate 1 2884  
531 14 Dtool_vDgf6E__ 0 6 507 2884 0 14 Dtool_vDgf6E__ 0 2 4 this 3 2910  6 stream 1 2992  
532 14 Dtool_vDgfcumQ 0 6 508 2884 0 14 Dtool_vDgfcumQ 0 2 4 this 3 2910  6 stream 1 2991  
533 14 Dtool_vDgfs6KK 0 6 508 2884 0 14 Dtool_vDgfs6KK 0 2 4 this 3 2910  6 stream 1 2992  
534 14 Dtool_vDgfhqDy 0 6 509 2884 0 14 Dtool_vDgfhqDy 0 3 4 this 3 2910  6 stream 1 2980  8 truncate 1 2884  
535 14 Dtool_vDgfknnX 0 6 509 2884 0 14 Dtool_vDgfknnX 0 2 4 this 3 2910  6 stream 1 2980  
536 14 Dtool_vDgf1dSR 0 6 509 2884 0 14 Dtool_vDgf1dSR 0 3 4 this 3 2910  6 stream 1 2993  8 truncate 1 2884  
537 14 Dtool_vDgfLMts 0 6 509 2884 0 14 Dtool_vDgfLMts 0 2 4 this 3 2910  6 stream 1 2993  
538 14 Dtool_vDgfPADv 0 6 510 2884 0 14 Dtool_vDgfPADv 0 2 4 this 3 2910  6 stream 1 2980  
539 14 Dtool_vDgfakwR 0 6 510 2884 0 14 Dtool_vDgfakwR 0 2 4 this 3 2910  6 stream 1 2993  
540 14 Dtool_vDgfm9kw 0 6 511 2884 0 14 Dtool_vDgfm9kw 22 // USE_PANDAFILESTREAM 1 4 this 3 2910  
541 14 Dtool_vDgfCry9 0 6 512 2884 0 14 Dtool_vDgfCry9 0 1 4 this 3 2910  
542 14 Dtool_vDgfaMuO 0 6 513 2884 0 14 Dtool_vDgfaMuO 0 1 4 this 3 2910  
543 14 Dtool_vDgfaavz 0 6 514 2884 0 14 Dtool_vDgfaavz 0 2 4 this 3 2910  5 other 1 2910  
544 14 Dtool_vDgfjPPu 0 6 515 2884 0 14 Dtool_vDgfjPPu 0 2 4 this 3 2910  5 other 1 2910  
545 14 Dtool_vDgfOOnR 0 6 516 2884 0 14 Dtool_vDgfOOnR 0 1 4 this 3 2910  
546 14 Dtool_vDgfeeq4 0 6 517 2884 0 14 Dtool_vDgfeeq4 0 1 4 this 3 2910  
547 14 Dtool_vDgfCI79 0 6 518 2884 0 14 Dtool_vDgfCI79 0 1 4 this 3 2910  
548 14 Dtool_vDgfTm2T 0 6 519 2884 0 14 Dtool_vDgfTm2T 226 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Equality operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2910  5 other 1 2880  
549 14 Dtool_vDgfNclT 0 6 520 2884 0 14 Dtool_vDgfNclT 228 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Inequality operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2910  5 other 1 2880  
550 14 Dtool_vDgfyKFd 0 6 521 2884 0 14 Dtool_vDgfyKFd 226 ////////////////////////////////////////////////////////////////////
//     Function: Filename::Ordering operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2910  5 other 1 2880  
551 14 Dtool_vDgfwktQ 0 6 522 2883 0 14 Dtool_vDgfwktQ 219 ////////////////////////////////////////////////////////////////////
//     Function: Filename::compare_to
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2910  5 other 1 2910  
552 14 Dtool_vDgfeHUw 0 6 523 2884 0 14 Dtool_vDgfeHUw 646 ////////////////////////////////////////////////////////////////////
//     Function: Filename::__nonzero__
//       Access: Published
//  Description: Returns true if the Filename is valid (not empty),
//               or false if it is an empty string.
//
//               This implements the Python equivalent to operator
//               bool.  Defining an actual operator bool method for
//               C++ use would work too, but it seems to cause too
//               many ambiguities for the C++ compiler, so we use this
//               Python-only approach instead.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
553 14 Dtool_vDgfnnHL 0 6 524 2883 0 14 Dtool_vDgfnnHL 0 1 4 this 3 2910  
554 14 Dtool_vDgfo_Iv 0 4 525 2882 0 14 Dtool_vDgfo_Iv 215 ////////////////////////////////////////////////////////////////////
//     Function: Filename::output
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2910  3 out 1 2887  
555 14 Dtool_vDgffmrp 0 4 526 2882 0 14 Dtool_vDgffmrp 557 ////////////////////////////////////////////////////////////////////
//     Function: Filename::set_filesystem_encoding
//       Access: Published, Static
//  Description: Specifies the default encoding to be used for all
//               subsequent Filenames.  This is used to represent
//               wide-character (Unicode) filenames internally.  On
//               non-Windows-based systems, the encoded filename is
//               also passed to the underlying operating system.
//////////////////////////////////////////////////////////////////// 1 8 encoding 1 2825  
556 14 Dtool_vDgfKN3I 0 6 527 2825 0 14 Dtool_vDgfKN3I 386 ////////////////////////////////////////////////////////////////////
//     Function: Filename::get_filesystem_encoding
//       Access: Published, Static
//  Description: Specifies the default encoding to be used for all
//               subsequent Filenames objects.  See
//               set_filesystem_encoding().
//////////////////////////////////////////////////////////////////// 0 
557 14 Dtool_vDgfsafE 0 7 528 2994 2262 14 Dtool_vDgfsafE 0 0 
558 14 Dtool_vDgfCFZV 0 6 447 2880 0 14 Dtool_vDgfCFZV 233 ////////////////////////////////////////////////////////////////////
//     Function: Filename::string typecast operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 2910  
559 14 Dtool_vDgfXLB8 0 7 530 2997 1955 14 Dtool_vDgfXLB8 225 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::Copy Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 2995  
560 14 Dtool_vDgfA2Rm 0 7 530 2997 1955 14 Dtool_vDgfA2Rm 707 // Filename: globPattern.I
// Created by:  drose (30May00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 7 pattern 1 2880  
561 14 Dtool_vDgfIp0c 0 7 530 2997 1955 14 Dtool_vDgfIp0c 707 // Filename: globPattern.I
// Created by:  drose (30May00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 0 
562 14 Dtool_vDgfgOgc 0 6 531 2997 0 14 Dtool_vDgfgOgc 233 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::Copy Assignment Operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2997  4 copy 1 2995  
563 14 Dtool_vDgfD9Td 0 6 532 2884 0 14 Dtool_vDgfD9Td 220 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::operator ==
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2995  5 other 1 2995  
564 14 Dtool_vDgfK_Dx 0 6 533 2884 0 14 Dtool_vDgfK_Dx 220 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::operator !=
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2995  5 other 1 2995  
565 14 Dtool_vDgfyvIe 0 6 534 2884 0 14 Dtool_vDgfyvIe 219 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::operator <
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2995  5 other 1 2995  
566 14 Dtool_vDgfkjXp 0 4 535 2882 0 14 Dtool_vDgfkjXp 301 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::set_pattern
//       Access: Public
//  Description: Changes the pattern string that the GlobPattern
//               object matches.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2997  7 pattern 1 2880  
567 14 Dtool_vDgftRZ0 0 6 536 2880 0 14 Dtool_vDgftRZ0 301 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::get_pattern
//       Access: Public
//  Description: Returns the pattern string that the GlobPattern
//               object matches.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2995  
568 14 Dtool_vDgfiND_ 0 4 537 2882 0 14 Dtool_vDgfiND_ 370 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::set_case_sensitive
//       Access: Public
//  Description: Sets whether the match is case sensitive (true) or
//               case insensitive (false).  The default is case
//               sensitive.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2997  14 case_sensitive 1 2884  
569 14 Dtool_vDgfCAJw 0 6 538 2884 0 14 Dtool_vDgfCAJw 373 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::get_case_sensitive
//       Access: Public
//  Description: Returns whether the match is case sensitive (true) or
//               case insensitive (false).  The default is case
//               sensitive.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2995  
570 14 Dtool_vDgfp_S7 0 4 539 2882 0 14 Dtool_vDgfp_S7 305 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::set_nomatch_chars
//       Access: Public
//  Description: Specifies a set of characters that are not matched by
//               * or ?.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2997  13 nomatch_chars 1 2880  
571 14 Dtool_vDgflN_R 0 6 540 2880 0 14 Dtool_vDgflN_R 305 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::get_nomatch_chars
//       Access: Public
//  Description: Returns the set of characters that are not matched by
//               * or ?.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2995  
572 14 Dtool_vDgf6aT3 0 6 541 2884 0 14 Dtool_vDgf6aT3 308 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::matches
//       Access: Public
//  Description: Returns true if the candidate string matches the
//               pattern, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 2995  9 candidate 1 2880  
573 14 Dtool_vDgfEKr3 0 4 542 2882 0 14 Dtool_vDgfEKr3 215 ////////////////////////////////////////////////////////////////////
//     Function: GlobPattern::output
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 2995  3 out 1 2887  
574 14 Dtool_vDgfP369 0 6 543 2884 0 14 Dtool_vDgfP369 0 1 4 this 3 2995  
575 14 Dtool_vDgfrrPx 0 6 544 2880 0 14 Dtool_vDgfrrPx 0 1 4 this 3 2995  
576 14 Dtool_vDgfmfXw 0 6 545 2943 0 14 Dtool_vDgfmfXw 0 2 4 this 3 2995  3 cwd 1 2910  
577 14 Dtool_vDgfDpUW 0 6 545 2943 0 14 Dtool_vDgfDpUW 0 1 4 this 3 2995  
578 14 Dtool_vDgfihwM 0 6 545 2883 0 14 Dtool_vDgfihwM 0 3 4 this 3 2995  7 results 1 2987  3 cwd 1 2910  
579 14 Dtool_vDgfMdbR 0 6 545 2883 0 14 Dtool_vDgfMdbR 0 2 4 this 3 2995  7 results 1 2987  
580 14 Dtool_vDgfcAKz 0 7 548 2998 1962 14 Dtool_vDgfcAKz 715 // Filename: encryptStream.I
// Created by:  drose (01Sep04)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
581 14 Dtool_vDgfMBmb 0 7 548 2998 1962 14 Dtool_vDgfMBmb 226 ////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 3 6 source 1 2890  11 owns_source 1 2884  8 password 1 2880  
582 14 Dtool_vDgfhqhe 0 6 549 2998 0 14 Dtool_vDgfhqhe 220 ////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::open
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 this 3 2998  6 source 1 2890  11 owns_source 1 2884  8 password 1 2880  
583 14 Dtool_vDgf6J2x 0 6 550 2998 0 14 Dtool_vDgf6J2x 348 ////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::close
//       Access: Published
//  Description: Resets the EncryptStream to empty, but does not actually
//               close the source istream unless owns_source was true.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2998  
584 14 Dtool_vDgf17sJ 0 6 551 2880 0 14 Dtool_vDgf17sJ 309 ////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::get_algorithm
//       Access: Published
//  Description: Returns the encryption algorithm that was read from
//               the stream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2999  
585 14 Dtool_vDgf9d5i 0 6 552 2883 0 14 Dtool_vDgf9d5i 321 ////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::get_key_length
//       Access: Published
//  Description: Returns the encryption key length, in bits, that was
//               read from the stream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2999  
586 14 Dtool_vDgfqoid 0 6 553 2883 0 14 Dtool_vDgfqoid 287 ////////////////////////////////////////////////////////////////////
//     Function: IDecryptStream::get_iteration_count
//       Access: Published
//  Description: Returns the value that was was read from the stream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 2999  
587 14 Dtool_vDgfoIx1 0 7 556 2989 1964 14 Dtool_vDgfoIx1 714 // Filename: pandaFileStream.I
// Created by:  drose (08Sep08)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: IFileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
588 14 Dtool_vDgfSAk0 0 7 556 2989 1964 14 Dtool_vDgfSAk0 223 ////////////////////////////////////////////////////////////////////
//     Function: IFileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 8 filename 1 2880  4 mode 1 2800  
589 14 Dtool_vDgfbO8N 0 7 556 2989 1964 14 Dtool_vDgfbO8N 223 ////////////////////////////////////////////////////////////////////
//     Function: IFileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
590 14 Dtool_vDgfzuIj 0 4 558 2882 0 14 Dtool_vDgfzuIj 217 ////////////////////////////////////////////////////////////////////
//     Function: IFileStream::open
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 this 3 2989  8 filename 1 2880  4 mode 1 2800  
591 14 Dtool_vDgf2hR_ 0 4 558 2882 0 14 Dtool_vDgf2hR_ 217 ////////////////////////////////////////////////////////////////////
//     Function: IFileStream::open
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 2989  8 filename 1 2880  
592 14 Dtool_vDgfIJHX 0 4 559 2882 0 14 Dtool_vDgfIJHX 218 ////////////////////////////////////////////////////////////////////
//     Function: IFileStream::close
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 this 3 2989  
593 14 Dtool_vDgfjqD_ 0 7 566 3001 1972 14 Dtool_vDgfjqD_ 227 ////////////////////////////////////////////////////////////////////
//     Function: IStreamWrapper::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 6 stream 1 2890  
594 14 Dtool_vDgfhXQN 0 6 568 2890 0 14 Dtool_vDgfhXQN 271 ////////////////////////////////////////////////////////////////////
//     Function: IStreamWrapper::get_istream
//       Access: Published
//  Description: Returns the istream this object is wrapping.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3002  
595 14 Dtool_vDgfg7Or 0 6 565 3004 0 14 Dtool_vDgfg7Or 0 1 4 this 3 3001  
596 14 Dtool_vDgfPMTM 0 4 562 2882 0 14 Dtool_vDgfPMTM 952 ////////////////////////////////////////////////////////////////////
//     Function: StreamWrapperBase::acquire
//       Access: Published
//  Description: Acquires the internal lock.  
//
//               User code should call this to take temporary
//               possession of the stream and perform direct I/O
//               operations on it, for instance to make several
//               sequential atomic reads.  You may not call any of the
//               StreamWrapper methods while the lock is held, other
//               than release().
//
//               Use with extreme caution!  This is a very low-level,
//               non-recursive lock.  You must call acquire() only
//               once, and you must later call release() exactly once.
//               Failing to do so may result in a hard deadlock with
//               no available debugging features.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3004  
597 14 Dtool_vDgfomSF 0 4 563 2882 0 14 Dtool_vDgfomSF 381 ////////////////////////////////////////////////////////////////////
//     Function: StreamWrapperBase::release
//       Access: Published
//  Description: Releases the internal lock.  Must be called exactly
//               once following a call to acquire().  See the cautions
//               with acquire().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3004  
598 14 Dtool_vDgfaaXn 0 6 570 2914 0 14 Dtool_vDgfaaXn 353 ////////////////////////////////////////////////////////////////////
//     Function: NeverFreeMemory::get_total_alloc
//       Access: Published, Static
//  Description: Returns the total number of bytes consumed by all the
//               pages allocated internally by this object.
//////////////////////////////////////////////////////////////////// 0 
599 14 Dtool_vDgfBAnY 0 6 571 2914 0 14 Dtool_vDgfBAnY 356 ////////////////////////////////////////////////////////////////////
//     Function: NeverFreeMemory::get_total_used
//       Access: Published, Static
//  Description: Returns the total number of bytes requested by the
//               application in calls to NeverFreeMemory::alloc().
//////////////////////////////////////////////////////////////////// 0 
600 14 Dtool_vDgfsUU4 0 6 572 2914 0 14 Dtool_vDgfsUU4 454 ////////////////////////////////////////////////////////////////////
//     Function: NeverFreeMemory::get_total_unused
//       Access: Published, Static
//  Description: Returns the difference between get_total_alloc() and
//               get_total_used().  This represents bytes in allocated
//               pages that have not (yet) been used by the
//               application.
//////////////////////////////////////////////////////////////////// 0 
601 14 Dtool_vDgfdB8d 0 7 575 3005 1979 14 Dtool_vDgfdB8d 0 0 
602 14 Dtool_vDgfvrEn 0 4 577 2882 0 14 Dtool_vDgfvrEn 0 3 4 this 3 3005  11 ostream_ptr 1 2887  12 delete_later 1 2884  
603 14 Dtool_vDgfVkUe 0 6 578 2887 0 14 Dtool_vDgfVkUe 0 1 4 this 3 3006  
604 14 Dtool_vDgf5Y26 0 4 580 2882 0 14 Dtool_vDgf5Y26 0 1 4 this 3 3005  
605 14 Dtool_vDgf_0e5 0 6 581 2884 0 14 Dtool_vDgf_0e5 0 1 4 this 3 3006  
606 14 Dtool_vDgf6z03 0 4 582 2882 0 14 Dtool_vDgf6z03 0 1 4 this 3 3006  
607 14 Dtool_vDgfWXtw 0 6 583 2884 0 14 Dtool_vDgfWXtw 0 1 4 this 3 3006  
608 14 Dtool_vDgfSHZe 0 6 584 2880 0 14 Dtool_vDgfSHZe 0 1 4 this 3 3006  
609 14 Dtool_vDgfu1XD 0 4 585 2882 0 14 Dtool_vDgfu1XD 0 1 4 this 3 3005  
610 14 Dtool_vDgf6gyi 0 6 586 3008 0 14 Dtool_vDgf6gyi 0 1 4 this 3 3005  
611 14 Dtool_vDgfx5dT 0 6 587 3008 0 14 Dtool_vDgfx5dT 0 2 4 this 3 3005  8 fullname 1 2880  
612 14 Dtool_vDgf73Bf 0 6 587 3008 0 14 Dtool_vDgf73Bf 0 3 4 this 3 3005  8 basename 1 2880  15 parent_category 1 3008  
613 14 Dtool_vDgf1kmX 0 6 587 3008 0 14 Dtool_vDgf1kmX 0 3 4 this 3 3005  8 basename 1 2880  15 parent_fullname 1 2880  
614 14 Dtool_vDgfppce 0 6 588 2887 0 14 Dtool_vDgfppce 0 0 
615 14 Dtool_vDgfYCcj 0 6 589 2887 0 14 Dtool_vDgfYCcj 0 0 
616 14 Dtool_vDgfzqoR 0 4 590 2882 0 14 Dtool_vDgfzqoR 0 1 3 str 1 2880  
617 14 Dtool_vDgf8DCI 0 6 591 3005 0 14 Dtool_vDgf8DCI 0 0 
618 14 Dtool_vDgfFwaK 0 6 597 2880 0 14 Dtool_vDgfFwaK 714 // Filename: notifyCategory.I
// Created by:  drose (29Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::get_fullname
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
619 14 Dtool_vDgf66Av 0 6 598 2880 0 14 Dtool_vDgf66Av 224 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::get_basename
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
620 14 Dtool_vDgfjotj 0 6 599 2812 0 14 Dtool_vDgfjotj 224 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::get_severity
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
621 14 Dtool_vDgfQmtm 0 4 600 2882 0 14 Dtool_vDgfQmtm 395 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::set_severity
//       Access: Public
//  Description: Sets the severity level of messages that will be
//               reported from this Category.  This allows any message
//               of this severity level or higher.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3008  8 severity 1 2812  
622 14 Dtool_vDgfNeuG 0 6 601 2884 0 14 Dtool_vDgfNeuG 331 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_on
//       Access: Public
//  Description: Returns true if messages of the indicated severity
//               level ought to be reported for this Category.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3009  8 severity 1 2812  
623 14 Dtool_vDgfdQtp 0 6 602 2884 0 14 Dtool_vDgfdQtp 392 // When NOTIFY_DEBUG is not defined, the categories will never be
// set to "spam" or "debug" severities, and these methods are
// redefined to be static to make it more obvious to the compiler.
// However, we still want to present a consistent interface to our
// scripting language, so during the interrogate pass (that is, when
// CPPPARSER is defined), we still pretend they're nonstatic. 1 4 this 3 3009  
624 14 Dtool_vDgfyDGx 0 6 603 2884 0 14 Dtool_vDgfyDGx 262 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_debug
//       Access: Public
//  Description: A shorthand way to write is_on(NS_debug).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
625 14 Dtool_vDgflDsK 0 6 604 2884 0 14 Dtool_vDgflDsK 260 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_info
//       Access: Public
//  Description: A shorthand way to write is_on(NS_info).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
626 14 Dtool_vDgfPEpj 0 6 605 2884 0 14 Dtool_vDgfPEpj 266 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_warning
//       Access: Public
//  Description: A shorthand way to write is_on(NS_warning).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
627 14 Dtool_vDgf6Fq4 0 6 606 2884 0 14 Dtool_vDgf6Fq4 262 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_error
//       Access: Public
//  Description: A shorthand way to write is_on(NS_error).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
628 14 Dtool_vDgfvd58 0 6 607 2884 0 14 Dtool_vDgfvd58 262 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::is_fatal
//       Access: Public
//  Description: A shorthand way to write is_on(NS_fatal).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
629 14 Dtool_vDgfTXie 0 6 608 2887 0 14 Dtool_vDgfTXie 0 3 4 this 3 3009  8 severity 1 2812  6 prefix 1 2884  
630 14 Dtool_vDgfUVa3 0 6 608 2887 0 14 Dtool_vDgfUVa3 0 2 4 this 3 3009  8 severity 1 2812  
631 14 Dtool_vDgfYZYH 0 6 609 2887 0 14 Dtool_vDgfYZYH 255 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::spam
//       Access: Public
//  Description: A shorthand way to write out(NS_spam).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3009  6 prefix 1 2884  
632 14 Dtool_vDgf1AGf 0 6 609 2887 0 14 Dtool_vDgf1AGf 255 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::spam
//       Access: Public
//  Description: A shorthand way to write out(NS_spam).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
633 14 Dtool_vDgfdLBq 0 6 610 2887 0 14 Dtool_vDgfdLBq 257 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::debug
//       Access: Public
//  Description: A shorthand way to write out(NS_debug).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3009  6 prefix 1 2884  
634 14 Dtool_vDgfoz6f 0 6 610 2887 0 14 Dtool_vDgfoz6f 257 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::debug
//       Access: Public
//  Description: A shorthand way to write out(NS_debug).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
635 14 Dtool_vDgfdLKB 0 6 611 2887 0 14 Dtool_vDgfdLKB 255 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::info
//       Access: Public
//  Description: A shorthand way to write out(NS_info).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3009  6 prefix 1 2884  
636 14 Dtool_vDgf9Q3Y 0 6 611 2887 0 14 Dtool_vDgf9Q3Y 255 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::info
//       Access: Public
//  Description: A shorthand way to write out(NS_info).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
637 14 Dtool_vDgfic9G 0 6 612 2887 0 14 Dtool_vDgfic9G 261 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::warning
//       Access: Public
//  Description: A shorthand way to write out(NS_warning).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3009  6 prefix 1 2884  
638 14 Dtool_vDgf6bPB 0 6 612 2887 0 14 Dtool_vDgf6bPB 261 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::warning
//       Access: Public
//  Description: A shorthand way to write out(NS_warning).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
639 14 Dtool_vDgfe0DR 0 6 613 2887 0 14 Dtool_vDgfe0DR 257 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::error
//       Access: Public
//  Description: A shorthand way to write out(NS_error).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3009  6 prefix 1 2884  
640 14 Dtool_vDgfos7G 0 6 613 2887 0 14 Dtool_vDgfos7G 257 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::error
//       Access: Public
//  Description: A shorthand way to write out(NS_error).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
641 14 Dtool_vDgf_JPC 0 6 614 2887 0 14 Dtool_vDgf_JPC 257 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::fatal
//       Access: Public
//  Description: A shorthand way to write out(NS_fatal).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3009  6 prefix 1 2884  
642 14 Dtool_vDgfreI4 0 6 614 2887 0 14 Dtool_vDgfreI4 257 ////////////////////////////////////////////////////////////////////
//     Function: NotifyCategory::fatal
//       Access: Public
//  Description: A shorthand way to write out(NS_fatal).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3009  
643 14 Dtool_vDgf8NNN 0 6 615 2883 0 14 Dtool_vDgf8NNN 0 1 4 this 3 3009  
644 14 Dtool_vDgf1YK4 0 6 616 3008 0 14 Dtool_vDgf1YK4 0 2 4 this 3 3009  1 i 1 2883  
645 14 Dtool_vDgfup_Y 0 4 617 2882 0 14 Dtool_vDgfup_Y 0 1 5 delta 1 2983  
646 14 Dtool_vDgfynKP 0 6 593 3011 0 14 Dtool_vDgfynKP 0 1 4 this 3 3008  
647 14 Dtool_vDgfn75q 0 6 594 3008 0 14 Dtool_vDgfn75q 0 1 4 this 3 3011  
648 14 Dtool_vDgffhwH 0 6 595 3012 0 14 Dtool_vDgffhwH 0 1 4 this 3 3008  
649 14 Dtool_vDgfaaZz 0 6 596 3008 0 14 Dtool_vDgfaaZz 0 1 4 this 3 3012  
650 14 Dtool_vDgfPdJc 0 7 621 3013 2027 14 Dtool_vDgfPdJc 226 ////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
651 14 Dtool_vDgf_s5u 0 7 621 3013 2027 14 Dtool_vDgf_s5u 226 ////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 3 4 dest 1 2887  9 owns_dest 1 2884  8 password 1 2880  
652 14 Dtool_vDgfnSkJ 0 6 622 3013 0 14 Dtool_vDgfnSkJ 220 ////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::open
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 this 3 3013  4 dest 1 2887  9 owns_dest 1 2884  8 password 1 2880  
653 14 Dtool_vDgf3RUi 0 6 623 3013 0 14 Dtool_vDgf3RUi 344 ////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::close
//       Access: Published
//  Description: Resets the EncryptStream to empty, but does not actually
//               close the dest ostream unless owns_dest was true.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3013  
654 14 Dtool_vDgfyArK 0 4 624 2882 0 14 Dtool_vDgfyArK 722 ////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::set_algorithm
//       Access: Published
//  Description: Specifies the encryption algorithm that should be
//               used for future calls to open().  The default
//               is whatever is specified by the encryption-algorithm
//               config variable.  The complete set of available
//               algorithms is defined by the current version of
//               OpenSSL.
//
//               If an invalid algorithm is specified, there is no
//               immediate error return code, but open() will
//               fail.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3013  9 algorithm 1 2880  
655 14 Dtool_vDgfxEjT 0 4 625 2882 0 14 Dtool_vDgfxEjT 658 ////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::set_key_length
//       Access: Published
//  Description: Specifies the length of the key, in bits, that should
//               be used to encrypt the stream in future calls to
//               open().  The default is whatever is specified
//               by the encryption-key-length config variable.  
//
//               If an invalid key_length for the chosen algorithm is
//               specified, there is no immediate error return code,
//               but open() will fail.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3013  10 key_length 1 2883  
656 14 Dtool_vDgfzC0T 0 4 626 2882 0 14 Dtool_vDgfzC0T 851 ////////////////////////////////////////////////////////////////////
//     Function: OEncryptStream::set_iteration_count
//       Access: Published
//  Description: Specifies the number of times to repeatedly hash the
//               key before writing it to the stream in future calls
//               to open().  Its purpose is to make it
//               computationally more expensive for an attacker to
//               search the key space exhaustively.  This should be a
//               multiple of 1,000 and should not exceed about 65
//               million; the value 0 indicates just one application
//               of the hashing algorithm.
//
//               The default is whatever is specified by the
//               encryption-iteration-count config variable.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3013  15 iteration_count 1 2883  
657 14 Dtool_vDgf5e4K 0 7 629 2991 2029 14 Dtool_vDgf5e4K 223 ////////////////////////////////////////////////////////////////////
//     Function: OFileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
658 14 Dtool_vDgf9vsJ 0 7 629 2991 2029 14 Dtool_vDgf9vsJ 223 ////////////////////////////////////////////////////////////////////
//     Function: OFileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 8 filename 1 2880  4 mode 1 2800  
659 14 Dtool_vDgfHXDj 0 7 629 2991 2029 14 Dtool_vDgfHXDj 223 ////////////////////////////////////////////////////////////////////
//     Function: OFileStream::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2880  
660 14 Dtool_vDgfZBQj 0 4 631 2882 0 14 Dtool_vDgfZBQj 217 ////////////////////////////////////////////////////////////////////
//     Function: OFileStream::open
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 this 3 2991  8 filename 1 2880  4 mode 1 2800  
661 14 Dtool_vDgfI_W_ 0 4 631 2882 0 14 Dtool_vDgfI_W_ 217 ////////////////////////////////////////////////////////////////////
//     Function: OFileStream::open
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 2991  8 filename 1 2880  
662 14 Dtool_vDgfidOX 0 4 632 2882 0 14 Dtool_vDgfidOX 218 ////////////////////////////////////////////////////////////////////
//     Function: OFileStream::close
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 this 3 2991  
663 14 Dtool_vDgf4vyG 0 7 635 3014 2034 14 Dtool_vDgf4vyG 227 ////////////////////////////////////////////////////////////////////
//     Function: OStreamWrapper::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 6 stream 1 2887  
664 14 Dtool_vDgfrwMP 0 6 637 2887 0 14 Dtool_vDgfrwMP 271 ////////////////////////////////////////////////////////////////////
//     Function: OStreamWrapper::get_ostream
//       Access: Published
//  Description: Returns the ostream this object is wrapping.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3015  
665 14 Dtool_vDgfWXWr 0 6 634 3004 0 14 Dtool_vDgfWXWr 0 1 4 this 3 3014  
666 14 Dtool_vDgfTzDo 0 6 639 2880 0 14 Dtool_vDgfTzDo 0 0 
667 14 Dtool_vDgf3E_r 0 6 640 2880 0 14 Dtool_vDgf3E_r 0 0 
668 14 Dtool_vDgfFXHg 0 6 641 2880 0 14 Dtool_vDgfFXHg 0 0 
669 14 Dtool_vDgf_hDl 0 6 642 2880 0 14 Dtool_vDgf_hDl 0 0 
670 14 Dtool_vDgflpKc 0 6 643 2883 0 14 Dtool_vDgflpKc 0 0 
671 14 Dtool_vDgfB4NU 0 6 644 2883 0 14 Dtool_vDgfB4NU 0 0 
672 14 Dtool_vDgfoXlJ 0 6 645 2883 0 14 Dtool_vDgfoXlJ 0 0 
673 14 Dtool_vDgfCKGJ 0 6 646 2884 0 14 Dtool_vDgfCKGJ 0 0 
674 14 Dtool_vDgfu2tG 0 6 647 2880 0 14 Dtool_vDgfu2tG 0 0 
675 14 Dtool_vDgfcM8j 0 6 648 2880 0 14 Dtool_vDgfcM8j 0 0 
676 14 Dtool_vDgfPPs0 0 6 649 2880 0 14 Dtool_vDgfPPs0 0 0 
677 14 Dtool_vDgf9Y1A 0 6 650 2880 0 14 Dtool_vDgf9Y1A 0 0 
678 14 Dtool_vDgftmeQ 0 6 651 2884 0 14 Dtool_vDgftmeQ 0 2 4 this 3 3017  6 system 1 2880  
679 14 Dtool_vDgfcMuF 0 6 652 2883 0 14 Dtool_vDgfcMuF 0 1 4 this 3 3017  
680 14 Dtool_vDgf5Z39 0 6 653 2880 0 14 Dtool_vDgf5Z39 0 2 4 this 3 3017  1 n 1 2883  
681 14 Dtool_vDgfdRlZ 0 6 654 2880 0 14 Dtool_vDgfdRlZ 0 3 4 this 3 3017  6 system 1 2880  3 tag 1 2880  
682 14 Dtool_vDgfF5dG 0 4 655 2882 0 14 Dtool_vDgfF5dG 0 2 4 this 3 3019  6 system 1 2880  
683 14 Dtool_vDgfr7j9 0 4 656 2882 0 14 Dtool_vDgfr7j9 0 4 4 this 3 3019  6 system 1 2880  3 tag 1 2880  5 value 1 2880  
684 14 Dtool_vDgfUwJH 0 6 657 2884 0 14 Dtool_vDgfUwJH 0 2 4 this 3 3019  3 pad 1 2914  
685 14 Dtool_vDgfJrBc 0 4 658 2882 0 14 Dtool_vDgfJrBc 0 2 4 this 3 3017  3 out 1 2887  
686 14 Dtool_vDgfB7SJ 0 4 659 2882 0 14 Dtool_vDgfB7SJ 0 2 4 this 3 3017  3 out 1 2887  
687 14 Dtool_vDgfF_U4 0 6 660 3019 0 14 Dtool_vDgfF_U4 0 0 
688 14 Dtool_vDgfO5cE 0 7 661 2994 2262 14 Dtool_vDgfO5cE 0 0 
689 14 Dtool_vDgfcxQD 0 7 663 3020 2076 14 Dtool_vDgfcxQD 0 1 4 copy 1 2941  
690 14 Dtool_vDgfLCx2 0 7 663 3020 2076 14 Dtool_vDgfLCx2 0 2 4 self 1 2943  6 source 1 2943  
691 14 Dtool_vDgfzuam 0 7 663 3020 2076 14 Dtool_vDgfzuam 0 1 11 type_handle 1 2994  
692 14 Dtool_vDgfeEbV 0 7 663 3020 2076 14 Dtool_vDgfeEbV 0 0 
693 14 Dtool_vDgfu8tm 0 7 664 3020 2076 14 Dtool_vDgfu8tm 0 2 1 n 1 2914  11 type_handle 1 2994  
694 14 Dtool_vDgfKqwg 0 7 664 3020 2076 14 Dtool_vDgfKqwg 0 1 1 n 1 2914  
695 14 Dtool_vDgfnkJ9 0 6 665 2914 0 14 Dtool_vDgfnkJ9 0 1 4 this 3 2941  
696 14 Dtool_vDgfsNZ_ 0 4 666 2882 0 14 Dtool_vDgfsNZ_ 0 2 4 this 3 3020  1 x 1 2886  
697 14 Dtool_vDgf8cnz 0 4 667 2882 0 14 Dtool_vDgf8cnz 0 1 4 this 3 3020  
698 14 Dtool_vDgfS8Hz 0 6 668 2886 0 14 Dtool_vDgfS8Hz 0 2 4 this 3 2941  1 n 1 2914  
699 14 Dtool_vDgfzP9E 0 4 669 2882 0 14 Dtool_vDgfzP9E 0 3 4 this 3 3020  1 n 1 2914  5 value 1 2886  
700 14 Dtool_vDgfKWc5 0 6 670 2886 0 14 Dtool_vDgfKWc5 0 2 4 this 3 2941  1 n 1 2914  
701 14 Dtool_vDgfwM7J 0 4 671 2882 0 14 Dtool_vDgfwM7J 0 3 4 this 3 3020  1 n 1 2914  5 value 1 2886  
702 14 Dtool_vDgfGYzb 0 6 672 2880 0 14 Dtool_vDgfGYzb 0 1 4 this 3 2941  
703 14 Dtool_vDgfN8LA 0 4 673 2882 0 14 Dtool_vDgfN8LA 0 2 4 this 3 3020  4 data 1 2880  
704 14 Dtool_vDgftBUo 0 6 674 2880 0 14 Dtool_vDgftBUo 0 3 4 this 3 2941  1 n 1 2914  5 count 1 2914  
705 14 Dtool_vDgfOgNY 0 4 675 2882 0 14 Dtool_vDgfOgNY 0 4 4 this 3 3020  1 n 1 2914  5 count 1 2914  4 data 1 2880  
706 14 Dtool_vDgfQNi2 0 6 676 2883 0 14 Dtool_vDgfQNi2 0 1 4 this 3 2941  
707 14 Dtool_vDgfEjro 0 6 677 2883 0 14 Dtool_vDgfEjro 0 1 4 this 3 2941  
708 14 Dtool_vDgfaG22 0 6 678 2883 0 14 Dtool_vDgfaG22 0 4 4 this 3 3020  4 self 1 2943  4 view 1 2945  5 flags 1 2883  
709 14 Dtool_vDgfEG4t 0 4 679 2882 0 14 Dtool_vDgfEG4t 0 3 4 this 3 2941  4 self 1 2943  4 view 1 2945  
710 14 Dtool_vDgfStqk 0 7 682 3021 2094 14 Dtool_vDgfStqk 0 1 4 copy 1 2955  
711 14 Dtool_vDgfaJOr 0 7 682 3021 2094 14 Dtool_vDgfaJOr 0 2 4 self 1 2943  6 source 1 2943  
712 14 Dtool_vDgf50ve 0 7 682 3021 2094 14 Dtool_vDgf50ve 0 1 11 type_handle 1 2994  
713 14 Dtool_vDgfBCOm 0 7 682 3021 2094 14 Dtool_vDgfBCOm 0 0 
714 14 Dtool_vDgfvSvC 0 7 683 3021 2094 14 Dtool_vDgfvSvC 0 2 1 n 1 2914  11 type_handle 1 2994  
715 14 Dtool_vDgfamlq 0 7 683 3021 2094 14 Dtool_vDgfamlq 0 1 1 n 1 2914  
716 14 Dtool_vDgfA9gr 0 6 684 2914 0 14 Dtool_vDgfA9gr 0 1 4 this 3 2955  
717 14 Dtool_vDgfjyFM 0 4 685 2882 0 14 Dtool_vDgfjyFM 0 2 4 this 3 3021  1 x 1 2957  
718 14 Dtool_vDgfSmNP 0 4 686 2882 0 14 Dtool_vDgfSmNP 0 1 4 this 3 3021  
719 14 Dtool_vDgf4XI_ 0 6 687 2957 0 14 Dtool_vDgf4XI_ 0 2 4 this 3 2955  1 n 1 2914  
720 14 Dtool_vDgfa5Zj 0 4 688 2882 0 14 Dtool_vDgfa5Zj 0 3 4 this 3 3021  1 n 1 2914  5 value 1 2957  
721 14 Dtool_vDgfP4V5 0 6 689 2957 0 14 Dtool_vDgfP4V5 0 2 4 this 3 2955  1 n 1 2914  
722 14 Dtool_vDgf66jT 0 4 690 2882 0 14 Dtool_vDgf66jT 0 3 4 this 3 3021  1 n 1 2914  5 value 1 2957  
723 14 Dtool_vDgfS1aI 0 6 691 2880 0 14 Dtool_vDgfS1aI 0 1 4 this 3 2955  
724 14 Dtool_vDgfJcjR 0 4 692 2882 0 14 Dtool_vDgfJcjR 0 2 4 this 3 3021  4 data 1 2880  
725 14 Dtool_vDgfSZwS 0 6 693 2880 0 14 Dtool_vDgfSZwS 0 3 4 this 3 2955  1 n 1 2914  5 count 1 2914  
726 14 Dtool_vDgfQ8Pa 0 4 694 2882 0 14 Dtool_vDgfQ8Pa 0 4 4 this 3 3021  1 n 1 2914  5 count 1 2914  4 data 1 2880  
727 14 Dtool_vDgfwKPl 0 6 695 2883 0 14 Dtool_vDgfwKPl 0 1 4 this 3 2955  
728 14 Dtool_vDgfhu1W 0 6 696 2883 0 14 Dtool_vDgfhu1W 0 1 4 this 3 2955  
729 14 Dtool_vDgfQtM5 0 6 697 2883 0 14 Dtool_vDgfQtM5 0 4 4 this 3 3021  4 self 1 2943  4 view 1 2945  5 flags 1 2883  
730 14 Dtool_vDgfKG6E 0 4 698 2882 0 14 Dtool_vDgfKG6E 0 3 4 this 3 2955  4 self 1 2943  4 view 1 2945  
731 14 Dtool_vDgfpby3 0 7 701 3022 2112 14 Dtool_vDgfpby3 0 1 4 copy 1 2964  
732 14 Dtool_vDgfFhuK 0 7 701 3022 2112 14 Dtool_vDgfFhuK 0 2 4 self 1 2943  6 source 1 2943  
733 14 Dtool_vDgfwp67 0 7 701 3022 2112 14 Dtool_vDgfwp67 0 1 11 type_handle 1 2994  
734 14 Dtool_vDgfv7BB 0 7 701 3022 2112 14 Dtool_vDgfv7BB 0 0 
735 14 Dtool_vDgfx96y 0 7 702 3022 2112 14 Dtool_vDgfx96y 0 2 1 n 1 2914  11 type_handle 1 2994  
736 14 Dtool_vDgfcHV1 0 7 702 3022 2112 14 Dtool_vDgfcHV1 0 1 1 n 1 2914  
737 14 Dtool_vDgfTHff 0 6 703 2914 0 14 Dtool_vDgfTHff 0 1 4 this 3 2964  
738 14 Dtool_vDgfGd3r 0 4 704 2882 0 14 Dtool_vDgfGd3r 0 2 4 this 3 3022  1 x 1 2883  
739 14 Dtool_vDgfnxdE 0 4 705 2882 0 14 Dtool_vDgfnxdE 0 1 4 this 3 3022  
740 14 Dtool_vDgfeumv 0 6 706 2883 0 14 Dtool_vDgfeumv 0 2 4 this 3 2964  1 n 1 2914  
741 14 Dtool_vDgfVPk1 0 4 707 2882 0 14 Dtool_vDgfVPk1 0 3 4 this 3 3022  1 n 1 2914  5 value 1 2883  
742 14 Dtool_vDgfAVjm 0 6 708 2883 0 14 Dtool_vDgfAVjm 0 2 4 this 3 2964  1 n 1 2914  
743 14 Dtool_vDgf9ssv 0 4 709 2882 0 14 Dtool_vDgf9ssv 0 3 4 this 3 3022  1 n 1 2914  5 value 1 2883  
744 14 Dtool_vDgf9yf1 0 6 710 2880 0 14 Dtool_vDgf9yf1 0 1 4 this 3 2964  
745 14 Dtool_vDgfnQKG 0 4 711 2882 0 14 Dtool_vDgfnQKG 0 2 4 this 3 3022  4 data 1 2880  
746 14 Dtool_vDgf4Bh1 0 6 712 2880 0 14 Dtool_vDgf4Bh1 0 3 4 this 3 2964  1 n 1 2914  5 count 1 2914  
747 14 Dtool_vDgfASSD 0 4 713 2882 0 14 Dtool_vDgfASSD 0 4 4 this 3 3022  1 n 1 2914  5 count 1 2914  4 data 1 2880  
748 14 Dtool_vDgfQsA8 0 6 714 2883 0 14 Dtool_vDgfQsA8 0 1 4 this 3 2964  
749 14 Dtool_vDgfbl8R 0 6 715 2883 0 14 Dtool_vDgfbl8R 0 1 4 this 3 2964  
750 14 Dtool_vDgf_HCC 0 6 716 2883 0 14 Dtool_vDgf_HCC 0 4 4 this 3 3022  4 self 1 2943  4 view 1 2945  5 flags 1 2883  
751 14 Dtool_vDgfu49T 0 4 717 2882 0 14 Dtool_vDgfu49T 0 3 4 this 3 2964  4 self 1 2943  4 view 1 2945  
752 14 Dtool_vDgf6Txu 0 7 720 3023 2130 14 Dtool_vDgf6Txu 0 1 4 copy 1 2972  
753 14 Dtool_vDgf_9TC 0 7 720 3023 2130 14 Dtool_vDgf_9TC 0 2 4 self 1 2943  6 source 1 2943  
754 14 Dtool_vDgf9RDH 0 7 720 3023 2130 14 Dtool_vDgf9RDH 0 1 11 type_handle 1 2994  
755 14 Dtool_vDgfPkXb 0 7 720 3023 2130 14 Dtool_vDgfPkXb 0 0 
756 14 Dtool_vDgfHrIj 0 7 721 3023 2130 14 Dtool_vDgfHrIj 0 2 1 n 1 2914  11 type_handle 1 2994  
757 14 Dtool_vDgfx6ks 0 7 721 3023 2130 14 Dtool_vDgfx6ks 0 1 1 n 1 2914  
758 14 Dtool_vDgfZxGV 0 6 722 2914 0 14 Dtool_vDgfZxGV 0 1 4 this 3 2972  
759 14 Dtool_vDgfxVTf 0 4 723 2882 0 14 Dtool_vDgfxVTf 0 2 4 this 3 3023  1 x 1 2974  
760 14 Dtool_vDgfz2Bp 0 4 724 2882 0 14 Dtool_vDgfz2Bp 0 1 4 this 3 3023  
761 14 Dtool_vDgf7t3V 0 6 725 2974 0 14 Dtool_vDgf7t3V 0 2 4 this 3 2972  1 n 1 2914  
762 14 Dtool_vDgfu15P 0 4 726 2882 0 14 Dtool_vDgfu15P 0 3 4 this 3 3023  1 n 1 2914  5 value 1 2974  
763 14 Dtool_vDgfuQmx 0 6 727 2974 0 14 Dtool_vDgfuQmx 0 2 4 this 3 2972  1 n 1 2914  
764 14 Dtool_vDgfI0W4 0 4 728 2882 0 14 Dtool_vDgfI0W4 0 3 4 this 3 3023  1 n 1 2914  5 value 1 2974  
765 14 Dtool_vDgfD9Ot 0 6 729 2880 0 14 Dtool_vDgfD9Ot 0 1 4 this 3 2972  
766 14 Dtool_vDgfx8_v 0 4 730 2882 0 14 Dtool_vDgfx8_v 0 2 4 this 3 3023  4 data 1 2880  
767 14 Dtool_vDgfG9ot 0 6 731 2880 0 14 Dtool_vDgfG9ot 0 3 4 this 3 2972  1 n 1 2914  5 count 1 2914  
768 14 Dtool_vDgfgv2k 0 4 732 2882 0 14 Dtool_vDgfgv2k 0 4 4 this 3 3023  1 n 1 2914  5 count 1 2914  4 data 1 2880  
769 14 Dtool_vDgf8vTH 0 6 733 2883 0 14 Dtool_vDgf8vTH 0 1 4 this 3 2972  
770 14 Dtool_vDgfy6Of 0 6 734 2883 0 14 Dtool_vDgfy6Of 0 1 4 this 3 2972  
771 14 Dtool_vDgfzdnf 0 6 735 2883 0 14 Dtool_vDgfzdnf 0 4 4 this 3 3023  4 self 1 2943  4 view 1 2945  5 flags 1 2883  
772 14 Dtool_vDgfG9Xn 0 4 736 2882 0 14 Dtool_vDgfG9Xn 0 3 4 this 3 2972  4 self 1 2943  4 view 1 2945  
773 14 Dtool_vDgfFpUz 0 7 739 3026 2133 14 Dtool_vDgfFpUz 306 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::Copy Constructor
//       Access: Published
//  Description: The copy constructor does not copy ownership of the
//               stream.
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3024  
774 14 Dtool_vDgfRUwl 0 7 739 3026 2133 14 Dtool_vDgfRUwl 333 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::Constructor
//       Access: Published
//  Description: If owns_stream is true, the stream pointer will be
//               deleted when the StreamReader destructs.
//////////////////////////////////////////////////////////////////// 2 2 in 1 2890  11 owns_stream 1 2884  
775 14 Dtool_vDgf9fei 0 6 740 3026 0 14 Dtool_vDgf9fei 314 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::Copy Assignment Operator
//       Access: Published
//  Description: The copy constructor does not copy ownership of the
//               stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3026  4 copy 1 3024  
776 14 Dtool_vDgfBqye 0 6 742 2890 0 14 Dtool_vDgfBqye 251 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_istream
//       Access: Published
//  Description: Returns the stream in use.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3024  
777 14 Dtool_vDgfRU6i 0 6 743 2884 0 14 Dtool_vDgfRU6i 247 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_bool
//       Access: Published
//  Description: Extracts a boolean value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
778 14 Dtool_vDgfKvu5 0 6 744 3027 0 14 Dtool_vDgfKvu5 254 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_int8
//       Access: Published
//  Description: Extracts a signed 8-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
779 14 Dtool_vDgf3bcv 0 6 745 2974 0 14 Dtool_vDgf3bcv 258 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_uint8
//       Access: Published
//  Description: Extracts an unsigned 8-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
780 14 Dtool_vDgfC3S_ 0 6 746 3028 0 14 Dtool_vDgfC3S_ 256 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_int16
//       Access: Published
//  Description: Extracts a signed 16-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
781 14 Dtool_vDgffHEw 0 6 747 2883 0 14 Dtool_vDgffHEw 256 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_int32
//       Access: Published
//  Description: Extracts a signed 32-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
782 14 Dtool_vDgfVfP_ 0 6 748 2885 0 14 Dtool_vDgfVfP_ 256 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_int64
//       Access: Published
//  Description: Extracts a signed 64-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
783 14 Dtool_vDgfCGYB 0 6 749 3029 0 14 Dtool_vDgfCGYB 260 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_uint16
//       Access: Published
//  Description: Extracts an unsigned 16-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
784 14 Dtool_vDgfq8Q6 0 6 750 2914 0 14 Dtool_vDgfq8Q6 260 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_uint32
//       Access: Published
//  Description: Extracts an unsigned 32-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
785 14 Dtool_vDgflBk_ 0 6 751 3030 0 14 Dtool_vDgflBk_ 260 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_uint64
//       Access: Published
//  Description: Extracts an unsigned 64-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
786 14 Dtool_vDgfFJu6 0 6 752 2957 0 14 Dtool_vDgfFJu6 445 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_float32
//       Access: Published
//  Description: Extracts a 32-bit single-precision floating-point
//               number.  Since this kind of float is not necessarily
//               portable across different architectures, special care
//               is required.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
787 14 Dtool_vDgfMMwk 0 6 753 2886 0 14 Dtool_vDgfMMwk 265 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_float64
//       Access: Published
//  Description: Extracts a 64-bit floating-point number.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
788 14 Dtool_vDgfx_KM 0 6 754 3028 0 14 Dtool_vDgfx_KM 270 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_int16
//       Access: Published
//  Description: Extracts a signed big-endian 16-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
789 14 Dtool_vDgfntwJ 0 6 755 2883 0 14 Dtool_vDgfntwJ 270 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_int32
//       Access: Published
//  Description: Extracts a signed big-endian 32-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
790 14 Dtool_vDgfM_CL 0 6 756 2885 0 14 Dtool_vDgfM_CL 270 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_int64
//       Access: Published
//  Description: Extracts a signed big-endian 64-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
791 14 Dtool_vDgfiU6t 0 6 757 3029 0 14 Dtool_vDgfiU6t 274 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_uint16
//       Access: Published
//  Description: Extracts an unsigned big-endian 16-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
792 14 Dtool_vDgfhfBh 0 6 758 2914 0 14 Dtool_vDgfhfBh 274 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_uint32
//       Access: Published
//  Description: Extracts an unsigned big-endian 32-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
793 14 Dtool_vDgfCq6J 0 6 759 3030 0 14 Dtool_vDgfCq6J 274 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_uint64
//       Access: Published
//  Description: Extracts an unsigned big-endian 64-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
794 14 Dtool_vDgftDBP 0 6 760 2957 0 14 Dtool_vDgftDBP 459 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_float32
//       Access: Published
//  Description: Extracts a 32-bit single-precision big-endian
//               floating-point number.  Since this kind of float is
//               not necessarily portable across different
//               architectures, special care is required.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
795 14 Dtool_vDgfxzXr 0 6 761 2886 0 14 Dtool_vDgfxzXr 279 ////////////////////////////////////////////////////////////////////
//     Function: StreamReader::get_be_float64
//       Access: Published
//  Description: Extracts a 64-bit big-endian floating-point number.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3026  
796 14 Dtool_vDgfSbCK 0 6 762 2880 0 14 Dtool_vDgfSbCK 0 1 4 this 3 3026  
797 14 Dtool_vDgfjatw 0 6 763 2880 0 14 Dtool_vDgfjatw 0 1 4 this 3 3026  
798 14 Dtool_vDgftLbM 0 6 764 2880 0 14 Dtool_vDgftLbM 0 1 4 this 3 3026  
799 14 Dtool_vDgfdj5Y 0 6 765 2880 0 14 Dtool_vDgfdj5Y 0 2 4 this 3 3026  4 size 1 2914  
800 14 Dtool_vDgfRyDw 0 4 766 2882 0 14 Dtool_vDgfRyDw 0 2 4 this 3 3026  4 size 1 2914  
801 14 Dtool_vDgfxpca 0 6 767 2880 0 14 Dtool_vDgfxpca 0 2 4 this 3 3026  4 size 1 2914  
802 14 Dtool_vDgfUfmk 0 6 768 2880 0 14 Dtool_vDgfUfmk 0 1 4 this 3 3026  
803 14 Dtool_vDgfbUMg 0 6 769 2943 0 14 Dtool_vDgfbUMg 0 1 4 this 3 3026  
804 14 Dtool_vDgfwzNG 0 7 775 3031 2167 14 Dtool_vDgfwzNG 226 ////////////////////////////////////////////////////////////////////
//     Function: StreamWrapper::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 6 stream 1 2981  
805 14 Dtool_vDgf5AbJ 0 6 777 2981 0 14 Dtool_vDgf5AbJ 272 ////////////////////////////////////////////////////////////////////
//     Function: StreamWrapper::get_iostream
//       Access: Published
//  Description: Returns the iostream this object is wrapping.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3032  
806 14 Dtool_vDgf74T2 0 6 771 3001 0 14 Dtool_vDgf74T2 0 1 4 this 3 3031  
807 14 Dtool_vDgf5iuL 0 6 772 3031 0 14 Dtool_vDgf5iuL 0 1 4 this 3 3001  
808 14 Dtool_vDgf7F95 0 6 773 3014 0 14 Dtool_vDgf7F95 0 1 4 this 3 3031  
809 14 Dtool_vDgfjP2L 0 6 774 3031 0 14 Dtool_vDgfjP2L 0 1 4 this 3 3014  
810 14 Dtool_vDgf9OZ1 0 7 779 3036 2171 14 Dtool_vDgf9OZ1 306 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::Copy Constructor
//       Access: Published
//  Description: The copy constructor does not copy ownership of the
//               stream.
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3034  
811 14 Dtool_vDgfPb0_ 0 7 779 3036 2171 14 Dtool_vDgfPb0_ 225 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 3 out 1 2887  11 owns_stream 1 2884  
812 14 Dtool_vDgfDFlt 0 6 780 3036 0 14 Dtool_vDgfDFlt 314 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::Copy Assignment Operator
//       Access: Published
//  Description: The copy constructor does not copy ownership of the
//               stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  4 copy 1 3034  
813 14 Dtool_vDgfUDoY 0 6 782 2887 0 14 Dtool_vDgfUDoY 251 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::get_ostream
//       Access: Published
//  Description: Returns the stream in use.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3034  
814 14 Dtool_vDgf3JN5 0 4 783 2882 0 14 Dtool_vDgf3JN5 257 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_bool
//       Access: Published
//  Description: Adds a boolean value to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2884  
815 14 Dtool_vDgfTGkZ 0 4 784 2882 0 14 Dtool_vDgfTGkZ 264 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_int8
//       Access: Published
//  Description: Adds a signed 8-bit integer to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 3027  
816 14 Dtool_vDgfEVDZ 0 4 785 2882 0 14 Dtool_vDgfEVDZ 268 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_uint8
//       Access: Published
//  Description: Adds an unsigned 8-bit integer to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2974  
817 14 Dtool_vDgfmnpY 0 4 786 2882 0 14 Dtool_vDgfmnpY 266 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_int16
//       Access: Published
//  Description: Adds a signed 16-bit integer to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 3028  
818 14 Dtool_vDgfIJDD 0 4 787 2882 0 14 Dtool_vDgfIJDD 266 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_int32
//       Access: Published
//  Description: Adds a signed 32-bit integer to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2883  
819 14 Dtool_vDgfWgUQ 0 4 788 2882 0 14 Dtool_vDgfWgUQ 266 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_int64
//       Access: Published
//  Description: Adds a signed 64-bit integer to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2885  
820 14 Dtool_vDgfq_Hu 0 4 789 2882 0 14 Dtool_vDgfq_Hu 270 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_uint16
//       Access: Published
//  Description: Adds an unsigned 16-bit integer to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 3029  
821 14 Dtool_vDgfT9bJ 0 4 790 2882 0 14 Dtool_vDgfT9bJ 270 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_uint32
//       Access: Published
//  Description: Adds an unsigned 32-bit integer to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2914  
822 14 Dtool_vDgf31RL 0 4 791 2882 0 14 Dtool_vDgf31RL 270 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_uint64
//       Access: Published
//  Description: Adds an unsigned 64-bit integer to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 3030  
823 14 Dtool_vDgfyymY 0 4 792 2882 0 14 Dtool_vDgfyymY 455 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_float32
//       Access: Published
//  Description: Adds a 32-bit single-precision floating-point number
//               to the stream.  Since this kind of float is not
//               necessarily portable across different architectures,
//               special care is required.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2957  
824 14 Dtool_vDgfREib 0 4 793 2882 0 14 Dtool_vDgfREib 275 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_float64
//       Access: Published
//  Description: Adds a 64-bit floating-point number to the stream.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2886  
825 14 Dtool_vDgfoxlG 0 4 794 2882 0 14 Dtool_vDgfoxlG 303 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_int16
//       Access: Published
//  Description: Adds a signed 16-bit big-endian integer to the
//               streamWriter.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 3028  
826 14 Dtool_vDgfPp6h 0 4 795 2882 0 14 Dtool_vDgfPp6h 303 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_int32
//       Access: Published
//  Description: Adds a signed 32-bit big-endian integer to the
//               streamWriter.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2883  
827 14 Dtool_vDgfboTe 0 4 796 2882 0 14 Dtool_vDgfboTe 303 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_int64
//       Access: Published
//  Description: Adds a signed 64-bit big-endian integer to the
//               streamWriter.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2885  
828 14 Dtool_vDgft7kL 0 4 797 2882 0 14 Dtool_vDgft7kL 307 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_uint16
//       Access: Published
//  Description: Adds an unsigned 16-bit big-endian integer to the
//               streamWriter.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 3029  
829 14 Dtool_vDgfQrp1 0 4 798 2882 0 14 Dtool_vDgfQrp1 307 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_uint32
//       Access: Published
//  Description: Adds an unsigned 32-bit big-endian integer to the
//               streamWriter.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2914  
830 14 Dtool_vDgfGgAL 0 4 799 2882 0 14 Dtool_vDgfGgAL 307 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_uint64
//       Access: Published
//  Description: Adds an unsigned 64-bit big-endian integer to the
//               streamWriter.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 3030  
831 14 Dtool_vDgfgr8S 0 4 800 2882 0 14 Dtool_vDgfgr8S 469 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_float32
//       Access: Published
//  Description: Adds a 32-bit single-precision big-endian
//               floating-point number to the stream.  Since this
//               kind of float is not necessarily portable across
//               different architectures, special care is required.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2957  
832 14 Dtool_vDgfgAln 0 4 801 2882 0 14 Dtool_vDgfgAln 312 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_be_float64
//       Access: Published
//  Description: Adds a 64-bit big-endian floating-point number to the
//               streamWriter.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  5 value 1 2886  
833 14 Dtool_vDgfV9F1 0 4 802 2882 0 14 Dtool_vDgfV9F1 334 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_string
//       Access: Published
//  Description: Adds a variable-length string to the stream.  This
//               actually adds a count followed by n bytes.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  3 str 1 2880  
834 14 Dtool_vDgfMtIk 0 4 803 2882 0 14 Dtool_vDgfMtIk 316 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_string32
//       Access: Published
//  Description: Adds a variable-length string to the stream, using a
//               32-bit length field.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  3 str 1 2880  
835 14 Dtool_vDgfYv3_ 0 4 804 2882 0 14 Dtool_vDgfYv3_ 316 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_z_string
//       Access: Published
//  Description: Adds a variable-length string to the stream, as a
//               NULL-terminated string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  3 str 1 2880  
836 14 Dtool_vDgfXQSq 0 4 805 2882 0 14 Dtool_vDgfXQSq 517 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::add_fixed_string
//       Access: Published
//  Description: Adds a fixed-length string to the stream.  If the
//               string given is less than the requested size, this
//               will pad the string out with zeroes; if it is greater
//               than the requested size, this will silently truncate
//               the string.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3036  3 str 1 2880  4 size 1 2914  
837 14 Dtool_vDgfMjY_ 0 4 806 2882 0 14 Dtool_vDgfMjY_ 0 2 4 this 3 3036  4 size 1 2914  
838 14 Dtool_vDgfbBfh 0 4 807 2882 0 14 Dtool_vDgfbBfh 300 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::append_data
//       Access: Published
//  Description: Appends some more raw data to the end of the
//               streamWriter.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  4 data 1 2880  
839 14 Dtool_vDgfRiFD 0 4 808 2882 0 14 Dtool_vDgfRiFD 258 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::flush
//       Access: Published
//  Description: Calls flush() on the underlying stream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3036  
840 14 Dtool_vDgfH0bl 0 4 809 2882 0 14 Dtool_vDgfH0bl 371 ////////////////////////////////////////////////////////////////////
//     Function: StreamWriter::write
//       Access: Published
//  Description: A synonym of append_data().  This is useful when
//               assigning the StreamWriter to sys.stderr and/or
//               sys.stdout in Python.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3036  3 str 1 2880  
841 14 Dtool_vDgffza9 0 7 812 3037 2237 14 Dtool_vDgffza9 710 // Filename: textEncoder.I
// Created by:  drose (26Mar03)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
842 14 Dtool_vDgfihQr 0 7 812 3037 2237 14 Dtool_vDgfihQr 228 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::Copy Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3038  
843 14 Dtool_vDgfrlQJ 0 4 813 2882 0 14 Dtool_vDgfrlQJ 692 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_encoding
//       Access: Published
//  Description: Specifies how the string set via set_text() is to be
//               interpreted.  The default, E_iso8859, means a
//               standard string with one-byte characters
//               (i.e. ASCII).  Other encodings are possible to take
//               advantage of character sets with more than 256
//               characters.
//
//               This affects only future calls to set_text(); it does
//               not change text that was set previously.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3037  8 encoding 1 2825  
844 14 Dtool_vDgfMWo7 0 6 814 2825 0 14 Dtool_vDgfMWo7 344 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_encoding
//       Access: Published
//  Description: Returns the encoding by which the string set via
//               set_text() is to be interpreted.  See set_encoding().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3038  
845 14 Dtool_vDgfFCJv 0 4 815 2882 0 14 Dtool_vDgfFCJv 387 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_default_encoding
//       Access: Published, Static
//  Description: Specifies the default encoding to be used for all
//               subsequently created TextEncoder objects.  See
//               set_encoding().
//////////////////////////////////////////////////////////////////// 1 8 encoding 1 2825  
846 14 Dtool_vDgfroPl 0 6 816 2825 0 14 Dtool_vDgfroPl 387 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_default_encoding
//       Access: Published, Static
//  Description: Specifies the default encoding to be used for all
//               subsequently created TextEncoder objects.  See
//               set_encoding().
//////////////////////////////////////////////////////////////////// 0 
847 14 Dtool_vDgfNXzC 0 4 817 2882 0 14 Dtool_vDgfNXzC 561 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_text
//       Access: Published
//  Description: Changes the text that is stored in the encoder.  The
//               text should be encoded according to the method
//               indicated by set_encoding().  Subsequent calls to
//               get_text() will return this same string, while
//               get_wtext() will return the decoded version of the
//               string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3037  4 text 1 2880  
848 14 Dtool_vDgf5aXk 0 4 817 2882 0 14 Dtool_vDgf5aXk 572 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_text
//       Access: Published
//  Description: The two-parameter version of set_text() accepts an
//               explicit encoding; the text is immediately decoded
//               and stored as a wide-character string.  Subsequent
//               calls to get_text() will return the same text
//               re-encoded using whichever encoding is specified by
//               set_encoding().
//////////////////////////////////////////////////////////////////// 3 4 this 3 3037  4 text 1 2880  8 encoding 1 2825  
849 14 Dtool_vDgfz_D5 0 4 818 2882 0 14 Dtool_vDgfz_D5 261 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::clear_text
//       Access: Published
//  Description: Removes the text from the TextEncoder.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3037  
850 14 Dtool_vDgf97oh 0 6 819 2884 0 14 Dtool_vDgf97oh 220 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::has_text
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3038  
851 14 Dtool_vDgfqMP7 0 4 820 2882 0 14 Dtool_vDgfqMP7 0 1 4 this 3 3037  
852 14 Dtool_vDgfT0Ve 0 4 821 2882 0 14 Dtool_vDgfT0Ve 0 1 4 this 3 3037  
853 14 Dtool_vDgfp9Te 0 6 822 2880 0 14 Dtool_vDgfp9Te 307 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_text
//       Access: Published
//  Description: Returns the current text, as encoded via the current
//               encoding system.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3038  
854 14 Dtool_vDgfJTNv 0 6 822 2880 0 14 Dtool_vDgfJTNv 309 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_text
//       Access: Published
//  Description: Returns the current text, as encoded via the indicated
//               encoding system.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3038  8 encoding 1 2825  
855 14 Dtool_vDgf2ChQ 0 4 823 2882 0 14 Dtool_vDgf2ChQ 300 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::append_text
//       Access: Published
//  Description: Appends the indicates string to the end of the stored
//               text.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3037  4 text 1 2880  
856 14 Dtool_vDgfoBY2 0 4 824 2882 0 14 Dtool_vDgfoBY2 380 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::append_unicode_char
//       Access: Published
//  Description: Appends a single character to the end of the stored
//               text.  This may be a wide character, up to 16 bits in
//               Unicode.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3037  9 character 1 2883  
857 14 Dtool_vDgf5x3n 0 6 825 2883 0 14 Dtool_vDgf5x3n 411 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_num_chars
//       Access: Published
//  Description: Returns the number of characters in the stored text.
//               This is a count of wide characters, after the string
//               has been decoded according to set_encoding().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3038  
858 14 Dtool_vDgfjULv 0 6 826 2883 0 14 Dtool_vDgfjULv 459 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_unicode_char
//       Access: Published
//  Description: Returns the Unicode value of the nth character in the
//               stored text.  This may be a wide character (greater
//               than 255), after the string has been decoded
//               according to set_encoding().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3038  5 index 1 2883  
859 14 Dtool_vDgfSkrk 0 4 827 2882 0 14 Dtool_vDgfSkrk 456 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_unicode_char
//       Access: Published
//  Description: Sets the Unicode value of the nth character in the
//               stored text.  This may be a wide character (greater
//               than 255), after the string has been decoded
//               according to set_encoding().
//////////////////////////////////////////////////////////////////// 3 4 this 3 3037  5 index 1 2883  9 character 1 2883  
860 14 Dtool_vDgfIGUu 0 6 828 2880 0 14 Dtool_vDgfIGUu 333 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_encoded_char
//       Access: Published
//  Description: Returns the nth char of the stored text, as a one-,
//               two-, or three-byte encoded string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3038  5 index 1 2883  
861 14 Dtool_vDgfJIi_ 0 6 828 2880 0 14 Dtool_vDgfJIi_ 333 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_encoded_char
//       Access: Published
//  Description: Returns the nth char of the stored text, as a one-,
//               two-, or three-byte encoded string.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3038  5 index 1 2883  8 encoding 1 2825  
862 14 Dtool_vDgfzcrI 0 6 829 2880 0 14 Dtool_vDgfzcrI 1136 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_text_as_ascii
//       Access: Published
//  Description: Returns the text associated with the node, converted
//               as nearly as possible to a fully-ASCII
//               representation.  This means replacing accented
//               letters with their unaccented ASCII equivalents.
//
//               It is possible that some characters in the string
//               cannot be converted to ASCII.  (The string may
//               involve symbols like the copyright symbol, for
//               instance, or it might involve letters in some other
//               alphabet such as Greek or Cyrillic, or even Latin
//               letters like thorn or eth that are not part of the
//               ASCII character set.)  In this case, as much of the
//               string as possible will be converted to ASCII, and
//               the nonconvertible characters will remain encoded in
//               the encoding specified by set_encoding().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3038  
863 14 Dtool_vDgfT63X 0 6 830 2880 0 14 Dtool_vDgfT63X 559 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::reencode_text
//       Access: Published, Static
//  Description: Given the indicated text string, which is assumed to
//               be encoded via the encoding "from", decodes it and
//               then reencodes it into the encoding "to", and returns
//               the newly encoded string.  This does not change or
//               affect any properties on the TextEncoder itself.
//////////////////////////////////////////////////////////////////// 3 4 text 1 2880  4 from 1 2825  2 to 1 2825  
864 14 Dtool_vDgfojqf 0 6 831 2884 0 14 Dtool_vDgfojqf 408 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_isalpha
//       Access: Published, Static
//  Description: Returns true if the indicated character is an
//               alphabetic letter, false otherwise.  This is akin to
//               ctype's isalpha(), extended to Unicode.
//////////////////////////////////////////////////////////////////// 1 9 character 1 2883  
865 14 Dtool_vDgfvaR4 0 6 832 2884 0 14 Dtool_vDgfvaR4 403 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_isdigit
//       Access: Published, Static
//  Description: Returns true if the indicated character is a
//               numeric digit, false otherwise.  This is akin to
//               ctype's isdigit(), extended to Unicode.
//////////////////////////////////////////////////////////////////// 1 9 character 1 2883  
866 14 Dtool_vDgfIDmv 0 6 833 2884 0 14 Dtool_vDgfIDmv 406 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_ispunct
//       Access: Published, Static
//  Description: Returns true if the indicated character is a
//               punctuation mark, false otherwise.  This is akin to
//               ctype's ispunct(), extended to Unicode.
//////////////////////////////////////////////////////////////////// 1 9 character 1 2883  
867 14 Dtool_vDgfX0SC 0 6 834 2884 0 14 Dtool_vDgfX0SC 406 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_islower
//       Access: Published, Static
//  Description: Returns true if the indicated character is a
//               lowercase letter, false otherwise.  This is akin to
//               ctype's islower(), extended to Unicode.
//////////////////////////////////////////////////////////////////// 1 9 character 1 2883  
868 14 Dtool_vDgfrvC8 0 6 835 2884 0 14 Dtool_vDgfrvC8 407 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_isupper
//       Access: Published, Static
//  Description: Returns true if the indicated character is an
//               uppercase letter, false otherwise.  This is akin to
//               ctype's isupper(), extended to Unicode.
//////////////////////////////////////////////////////////////////// 1 9 character 1 2883  
869 14 Dtool_vDgfzKc0 0 6 836 2884 0 14 Dtool_vDgfzKc0 407 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_isspace
//       Access: Published, Static
//  Description: Returns true if the indicated character is a
//               whitespace letter, false otherwise.  This is akin to
//               ctype's isspace(), extended to Unicode.
//////////////////////////////////////////////////////////////////// 1 9 character 1 2883  
870 14 Dtool_vDgf0HrF 0 6 837 2883 0 14 Dtool_vDgf0HrF 391 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_toupper
//       Access: Published, Static
//  Description: Returns the uppercase equivalent of the given Unicode
//               character.  This is akin to ctype's toupper(),
//               extended to Unicode.
//////////////////////////////////////////////////////////////////// 1 9 character 1 2883  
871 14 Dtool_vDgfFs8L 0 6 838 2883 0 14 Dtool_vDgfFs8L 391 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::unicode_tolower
//       Access: Published, Static
//  Description: Returns the uppercase equivalent of the given Unicode
//               character.  This is akin to ctype's tolower(),
//               extended to Unicode.
//////////////////////////////////////////////////////////////////// 1 9 character 1 2883  
872 14 Dtool_vDgfs0pk 0 6 839 2880 0 14 Dtool_vDgfs0pk 332 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::upper
//       Access: Published, Static
//  Description: Converts the string to uppercase, assuming the string
//               is encoded in the default encoding.
//////////////////////////////////////////////////////////////////// 1 6 source 1 2880  
873 14 Dtool_vDgfxe6q 0 6 839 2880 0 14 Dtool_vDgfxe6q 334 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::upper
//       Access: Published, Static
//  Description: Converts the string to uppercase, assuming the string
//               is encoded in the indicated encoding.
//////////////////////////////////////////////////////////////////// 2 6 source 1 2880  8 encoding 1 2825  
874 14 Dtool_vDgfiTMW 0 6 840 2880 0 14 Dtool_vDgfiTMW 332 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::lower
//       Access: Published, Static
//  Description: Converts the string to lowercase, assuming the string
//               is encoded in the default encoding.
//////////////////////////////////////////////////////////////////// 1 6 source 1 2880  
875 14 Dtool_vDgf9Pec 0 6 840 2880 0 14 Dtool_vDgf9Pec 334 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::lower
//       Access: Published, Static
//  Description: Converts the string to lowercase, assuming the string
//               is encoded in the indicated encoding.
//////////////////////////////////////////////////////////////////// 2 6 source 1 2880  8 encoding 1 2825  
876 14 Dtool_vDgfmA0p 0 4 841 2882 0 14 Dtool_vDgfmA0p 446 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::set_wtext
//       Access: Published
//  Description: Changes the text that is stored in the encoder.
//               Subsequent calls to get_wtext() will return this same
//               string, while get_text() will return the encoded
//               version of the string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3037  5 wtext 1 2880  
877 14 Dtool_vDgf1Bjn 0 6 842 2880 0 14 Dtool_vDgf1Bjn 316 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::get_wtext
//       Access: Published
//  Description: Returns the text associated with the TextEncoder, as
//               a wide-character string.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3038  
878 14 Dtool_vDgfiCsX 0 4 843 2882 0 14 Dtool_vDgfiCsX 316 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::append_wtext
//       Access: Published
//  Description: Appends the indicates string to the end of the stored
//               wide-character text.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3037  4 text 1 2880  
879 14 Dtool_vDgfD9G1 0 6 844 2880 0 14 Dtool_vDgfD9G1 0 1 4 this 3 3038  
880 14 Dtool_vDgfeSU3 0 6 845 2884 0 14 Dtool_vDgfeSU3 0 1 4 this 3 3038  
881 14 Dtool_vDgfL6gl 0 6 846 2880 0 14 Dtool_vDgfL6gl 0 2 2 ch 1 3040  8 encoding 1 2825  
882 14 Dtool_vDgfDN1f 0 6 847 2880 0 14 Dtool_vDgfDN1f 330 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::encode_wtext
//       Access: Published
//  Description: Encodes a wide-text string into a single-char string,
//               according to the current encoding.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3038  5 wtext 1 2880  
883 14 Dtool_vDgfk4q6 0 6 847 2880 0 14 Dtool_vDgfk4q6 0 2 5 wtext 1 2880  8 encoding 1 2825  
884 14 Dtool_vDgfw6DP 0 6 848 2880 0 14 Dtool_vDgfw6DP 332 ////////////////////////////////////////////////////////////////////
//     Function: TextEncoder::decode_text
//       Access: Published
//  Description: Returns the given wstring decoded to a single-byte
//               string, via the current encoding system.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3038  4 text 1 2880  
885 14 Dtool_vDgf5DE9 0 6 848 2880 0 14 Dtool_vDgf5DE9 0 2 4 text 1 2880  8 encoding 1 2825  
886 14 Dtool_vDgfN5ho 0 7 852 2994 2262 14 Dtool_vDgfN5ho 1023 // Filename: typeHandle.I
// Created by:  drose (22Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Constructor
//       Access: Published
//  Description: The default constructor must do nothing, because we
//               can't guarantee ordering of static initializers.  If
//               the constructor tried to initialize its value, it
//               might happen after the value had already been set
//               previously by another static initializer!
//////////////////////////////////////////////////////////////////// 0 
887 14 Dtool_vDgfGniZ 0 7 852 2994 2262 14 Dtool_vDgfGniZ 227 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Copy Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3041  
888 14 Dtool_vDgfsZUg 0 6 853 2943 0 14 Dtool_vDgfsZUg 0 1 8 classobj 1 2943  
889 14 Dtool_vDgfxgMZ 0 6 854 2884 0 14 Dtool_vDgfxgMZ 228 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Equality Operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 other 1 3041  
890 14 Dtool_vDgf9A0H 0 6 855 2884 0 14 Dtool_vDgf9A0H 230 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Inequality Operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 other 1 3041  
891 14 Dtool_vDgf0HOQ 0 6 856 2884 0 14 Dtool_vDgf0HOQ 228 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Ordering Operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 other 1 3041  
892 14 Dtool_vDgfx4bP 0 6 857 2884 0 14 Dtool_vDgfx4bP 228 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Ordering Operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 other 1 3041  
893 14 Dtool_vDgf0Xwj 0 6 858 2884 0 14 Dtool_vDgf0Xwj 228 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Ordering Operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 other 1 3041  
894 14 Dtool_vDgfxo9i 0 6 859 2884 0 14 Dtool_vDgfxo9i 228 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::Ordering Operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 other 1 3041  
895 14 Dtool_vDgfbjGQ 0 6 860 2883 0 14 Dtool_vDgfbjGQ 463 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::compare_to
//       Access: Published
//  Description: Sorts TypeHandles arbitrarily (according to <, >,
//               etc.).  Returns a number less than 0 if this type
//               sorts before the other one, greater than zero if it
//               sorts after, 0 if they are equivalent.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 other 1 3041  
896 14 Dtool_vDgf3PTn 0 6 861 2914 0 14 Dtool_vDgf3PTn 263 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_hash
//       Access: Published
//  Description: Returns a hash code suitable for phash_map.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3041  
897 14 Dtool_vDgfRQdg 0 6 862 2880 0 14 Dtool_vDgfRQdg 484 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_name
//       Access: Published
//  Description: Returns the name of the type.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  6 object 1 3043  
898 14 Dtool_vDgfhwj6 0 6 862 2880 0 14 Dtool_vDgfhwj6 484 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_name
//       Access: Published
//  Description: Returns the name of the type.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3041  
899 14 Dtool_vDgfvx87 0 6 863 2884 0 14 Dtool_vDgfvx87 557 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::is_derived_from
//       Access: Published
//  Description: Returns true if this type is derived from the
//               indicated type, false otherwise.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3041  6 parent 1 2994  6 object 1 3043  
900 14 Dtool_vDgfviuC 0 6 863 2884 0 14 Dtool_vDgfviuC 557 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::is_derived_from
//       Access: Published
//  Description: Returns true if this type is derived from the
//               indicated type, false otherwise.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  6 parent 1 2994  
901 14 Dtool_vDgfhY1k 0 6 864 2883 0 14 Dtool_vDgfhY1k 878 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_parent_classes
//       Access: Published
//  Description: Returns the number of parent classes that this
//               type is known to have.  This may then be used to
//               index into get_parent_class().  The result will be 0
//               if this class does not inherit from any other
//               classes, 1 if normal, single inheritance is in
//               effect, or greater than one if multiple inheritance
//               is in effect.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  6 object 1 3043  
902 14 Dtool_vDgf_rZb 0 6 864 2883 0 14 Dtool_vDgf_rZb 878 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_parent_classes
//       Access: Published
//  Description: Returns the number of parent classes that this
//               type is known to have.  This may then be used to
//               index into get_parent_class().  The result will be 0
//               if this class does not inherit from any other
//               classes, 1 if normal, single inheritance is in
//               effect, or greater than one if multiple inheritance
//               is in effect.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3041  
903 14 Dtool_vDgf4htB 0 7 865 2994 2262 14 Dtool_vDgf4htB 383 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_parent_classes
//       Access: Published
//  Description: Returns the nth parent class of this type.  The index
//               should be in the range 0 <= index <
//               get_num_parent_classes().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 index 1 2883  
904 14 Dtool_vDgfbcCX 0 6 866 2883 0 14 Dtool_vDgfbcCX 626 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_child_classes
//       Access: Published
//  Description: Returns the number of child classes that this
//               type is known to have.  This may then be used to
//               index into get_child_class().
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  6 object 1 3043  
905 14 Dtool_vDgf3vxm 0 6 866 2883 0 14 Dtool_vDgf3vxm 626 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_child_classes
//       Access: Published
//  Description: Returns the number of child classes that this
//               type is known to have.  This may then be used to
//               index into get_child_class().
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3041  
906 14 Dtool_vDgfUvhk 0 7 867 2994 2262 14 Dtool_vDgfUvhk 380 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_num_child_classes
//       Access: Published
//  Description: Returns the nth child class of this type.  The index
//               should be in the range 0 <= index <
//               get_num_child_classes().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  5 index 1 2883  
907 14 Dtool_vDgfCbxt 0 7 868 2994 2262 14 Dtool_vDgfCbxt 959 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_parent_towards
//       Access: Published
//  Description: Returns the parent class that is in a direct line of
//               inheritance to the indicated ancestor class.  This is
//               useful in the presence of multiple inheritance to try
//               to determine what properties an unknown type may
//               have.
//
//               The return value is TypeHandle::none() if the type
//               does not inherit from the ancestor.  If ancestor is
//               the same as this type, the return value is this type.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3041  8 ancestor 1 2994  6 object 1 3043  
908 14 Dtool_vDgfjV7z 0 7 868 2994 2262 14 Dtool_vDgfjV7z 959 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_parent_towards
//       Access: Published
//  Description: Returns the parent class that is in a direct line of
//               inheritance to the indicated ancestor class.  This is
//               useful in the presence of multiple inheritance to try
//               to determine what properties an unknown type may
//               have.
//
//               The return value is TypeHandle::none() if the type
//               does not inherit from the ancestor.  If ancestor is
//               the same as this type, the return value is this type.
//
//               The "object" pointer is an optional pointer to the
//               TypedObject class that owns this TypeHandle.  It is
//               only used in case the TypeHandle is inadvertantly
//               undefined.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  8 ancestor 1 2994  
909 14 Dtool_vDgfKt8F 0 6 869 2883 0 14 Dtool_vDgfKt8F 274 ////////////////////////////////////////////////////////////////////
//     Function: get_best_parent_from_Set
//       Access: Published
//  Description: Return the Index of the BEst fit Classs from a set
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  10 legal_vals 1 3044  
910 14 Dtool_vDgfrJ7e 0 6 870 2883 0 14 Dtool_vDgfrJ7e 0 2 4 this 3 3041  12 memory_class 1 2827  
911 14 Dtool_vDgflJTw 0 4 871 2882 0 14 Dtool_vDgflJTw 0 3 4 this 3 2994  12 memory_class 1 2827  4 size 1 2883  
912 14 Dtool_vDgfAHQK 0 4 872 2882 0 14 Dtool_vDgfAHQK 0 3 4 this 3 2994  12 memory_class 1 2827  4 size 1 2883  
913 14 Dtool_vDgfPmiQ 0 6 873 2883 0 14 Dtool_vDgfPmiQ 654 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::get_index
//       Access: Published
//  Description: Returns the integer index associated with this
//               TypeHandle. Each different TypeHandle will have a
//               different index.  However, you probably shouldn't be
//               using this method; you should just treat the
//               TypeHandles as opaque classes.  This is provided for
//               the convenience of non-C++ scripting languages to
//               build a hashtable of TypeHandles.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3041  
914 14 Dtool_vDgfVMV9 0 4 874 2882 0 14 Dtool_vDgfVMV9 218 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3041  3 out 1 2887  
915 14 Dtool_vDgfp1S_ 0 7 875 2994 2262 14 Dtool_vDgfp1S_ 315 ////////////////////////////////////////////////////////////////////
//     Function: TypeHandle::none
//       Access: Published, Static
//  Description: Returns a special zero-valued TypeHandle that is used
//               to indicate no type.
//////////////////////////////////////////////////////////////////// 0 
916 14 Dtool_vDgfx9n6 0 7 878 2994 2262 14 Dtool_vDgfx9n6 0 2 4 this 3 3047  4 name 1 2880  
917 14 Dtool_vDgf89Zn 0 7 879 2994 2262 14 Dtool_vDgf89Zn 0 2 4 this 3 3047  2 id 1 2883  
918 14 Dtool_vDgf5DEU 0 6 880 2880 0 14 Dtool_vDgf5DEU 0 3 4 this 3 3047  4 type 1 2994  6 object 1 3043  
919 14 Dtool_vDgfMBOu 0 6 881 2884 0 14 Dtool_vDgfMBOu 0 4 4 this 3 3049  5 child 1 2994  4 base 1 2994  12 child_object 1 3043  
920 14 Dtool_vDgfEPGQ 0 6 882 2883 0 14 Dtool_vDgfEPGQ 0 1 4 this 3 3049  
921 14 Dtool_vDgfOGBx 0 7 883 2994 2262 14 Dtool_vDgfOGBx 0 2 4 this 3 3049  1 n 1 2883  
922 14 Dtool_vDgfPxO1 0 6 884 2883 0 14 Dtool_vDgfPxO1 0 1 4 this 3 3049  
923 14 Dtool_vDgfLFNI 0 7 885 2994 2262 14 Dtool_vDgfLFNI 0 2 4 this 3 3049  1 n 1 2883  
924 14 Dtool_vDgflx7d 0 6 886 2883 0 14 Dtool_vDgflx7d 0 3 4 this 3 3047  5 child 1 2994  12 child_object 1 3043  
925 14 Dtool_vDgf4LWH 0 7 887 2994 2262 14 Dtool_vDgf4LWH 0 3 4 this 3 3047  5 child 1 2994  5 index 1 2883  
926 14 Dtool_vDgfmVbL 0 6 888 2883 0 14 Dtool_vDgfmVbL 0 3 4 this 3 3047  5 child 1 2994  12 child_object 1 3043  
927 14 Dtool_vDgffTRM 0 7 889 2994 2262 14 Dtool_vDgffTRM 0 3 4 this 3 3047  5 child 1 2994  5 index 1 2883  
928 14 Dtool_vDgf3YQ7 0 7 890 2994 2262 14 Dtool_vDgf3YQ7 0 4 4 this 3 3049  5 child 1 2994  4 base 1 2994  12 child_object 1 3043  
929 14 Dtool_vDgf5_p8 0 4 891 2882 0 14 Dtool_vDgf5_p8 0 0 
930 14 Dtool_vDgfeZEC 0 4 892 2882 0 14 Dtool_vDgfeZEC 0 2 4 this 3 3047  3 out 1 2887  
931 14 Dtool_vDgfuwsa 0 6 893 3049 0 14 Dtool_vDgfuwsa 63 // ptr() returns the pointer to the global TypeRegistry object. 0 
932 14 Dtool_vDgf1uxI 0 7 899 2994 2262 14 Dtool_vDgf1uxI 79 // Derived classes should override this function to return
// get_class_type(). 1 4 this 3 3050  
933 14 Dtool_vDgfm7AU 0 6 900 2883 0 14 Dtool_vDgfm7AU 441 ////////////////////////////////////////////////////////////////////
//     Function: TypedObject::get_type_index
//       Access: Published
//  Description: Returns the internal index number associated with
//               this object's TypeHandle, a unique number for each
//               different type.  This is equivalent to
//               get_type().get_index().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3050  
934 14 Dtool_vDgfnFKt 0 6 901 2884 0 14 Dtool_vDgfnFKt 313 ////////////////////////////////////////////////////////////////////
//     Function: TypedObject::is_of_type
//       Access: Published
//  Description: Returns true if the current object is or derives from
//               the indicated type.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3050  6 handle 1 2994  
935 14 Dtool_vDgf7Xzz 0 6 902 2884 0 14 Dtool_vDgf7Xzz 308 ////////////////////////////////////////////////////////////////////
//     Function: TypedObject::is_exact_type
//       Access: Published
//  Description: Returns true if the current object is the indicated
//               type exactly.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3050  6 handle 1 2994  
936 14 Dtool_vDgfEGqZ 0 7 903 2994 2262 14 Dtool_vDgfEGqZ 0 0 
937 14 Dtool_vDgfr4rO 0 6 896 3011 0 14 Dtool_vDgfr4rO 0 1 4 this 3 3043  
938 14 Dtool_vDgffhug 0 6 897 3043 0 14 Dtool_vDgffhug 0 1 4 this 3 3011  
939 14 Dtool_vDgfIgAg 0 7 905 2993 2290 14 Dtool_vDgfIgAg 0 0 
940 14 Dtool_vDgfqVe2 0 4 906 2882 0 14 Dtool_vDgfqVe2 0 1 4 this 3 2993  
941 14 Dtool_vDgfkUnH 0 7 909 2990 2293 14 Dtool_vDgfkUnH 0 0 
942 14 Dtool_vDgfIq5S 0 4 910 2882 0 14 Dtool_vDgfIq5S 0 1 4 this 3 2990  
943 14 Dtool_vDgfyzMI 0 7 913 2992 2296 14 Dtool_vDgfyzMI 0 0 
944 14 Dtool_vDgf2_AT 0 4 914 2882 0 14 Dtool_vDgf2_AT 0 1 4 this 3 2992  
945 14 Dtool_vDgf_ZlF 0 6 918 2884 0 14 Dtool_vDgf_ZlF 374 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::is_tracking
//       Access: Public, Static
//  Description: Returns true if the MemoryUsage object is currently
//               tracking memory (e.g. track-memory-usage is
//               configured #t).
//////////////////////////////////////////////////////////////////// 0 
946 14 Dtool_vDgfX_zM 0 6 919 2884 0 14 Dtool_vDgfX_zM 413 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::is_counting
//       Access: Public, Static
//  Description: Returns true if the MemoryUsage object is currently
//               at least counting memory (e.g. this is a Windows
//               debug build), even if it's not fully tracking it.
//////////////////////////////////////////////////////////////////// 0 
947 14 Dtool_vDgfCy97 0 6 920 2914 0 14 Dtool_vDgfCy97 394 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_current_cpp_size
//       Access: Public, Static
//  Description: Returns the total number of bytes of allocated memory
//               consumed by C++ objects, not including the memory
//               previously frozen.
//////////////////////////////////////////////////////////////////// 0 
948 14 Dtool_vDgf_T5n 0 6 921 2914 0 14 Dtool_vDgf_T5n 388 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_total_cpp_size
//       Access: Public, Static
//  Description: Returns the total number of bytes of allocated memory
//               consumed by C++ objects, including the memory
//               previously frozen.
//////////////////////////////////////////////////////////////////// 0 
949 14 Dtool_vDgfVdCh 0 6 922 2914 0 14 Dtool_vDgfVdCh 366 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_panda_heap_single_size
//       Access: Public, Static
//  Description: Returns the total number of bytes allocated from the
//               heap from code within Panda, for individual objects.
//////////////////////////////////////////////////////////////////// 0 
950 14 Dtool_vDgf_A1B 0 6 923 2914 0 14 Dtool_vDgf_A1B 353 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_panda_heap_array_size
//       Access: Public, Static
//  Description: Returns the total number of bytes allocated from the
//               heap from code within Panda, for arrays.
//////////////////////////////////////////////////////////////////// 0 
951 14 Dtool_vDgfghU5 0 6 924 2914 0 14 Dtool_vDgfghU5 465 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_panda_heap_overhead
//       Access: Public, Static
//  Description: Returns the extra bytes allocated from the system
//               that are not immediately used for holding allocated
//               objects.  This can only be determined if
//               ALTERNATIVE_MALLOC is enabled.
//////////////////////////////////////////////////////////////////// 0 
952 14 Dtool_vDgf5Oa9 0 6 925 2914 0 14 Dtool_vDgf5Oa9 350 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_panda_mmap_size
//       Access: Public, Static
//  Description: Returns the total number of bytes allocated from the
//               virtual memory pool from code within Panda.
//////////////////////////////////////////////////////////////////// 0 
953 14 Dtool_vDgfBWZR 0 6 926 2914 0 14 Dtool_vDgfBWZR 852 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_external_size
//       Access: Public, Static
//  Description: Returns the total number of bytes of allocated memory
//               in the heap that Panda didn't seem to be responsible
//               for.  This includes a few bytes for very low-level
//               objects (like ConfigVariables) that cannot use Panda
//               memory tracking because they are so very low-level.
//
//               This also includes all of the memory that might have
//               been allocated by a high-level interpreter, like
//               Python.
//
//               This number is only available if Panda is able to
//               hook into the actual heap callback.
//////////////////////////////////////////////////////////////////// 0 
954 14 Dtool_vDgflqev 0 6 927 2914 0 14 Dtool_vDgflqev 348 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_total_size
//       Access: Public, Static
//  Description: Returns the total size of allocated memory consumed
//               by the process, as nearly as can be determined.
//////////////////////////////////////////////////////////////////// 0 
955 14 Dtool_vDgfu9Wa 0 6 928 2883 0 14 Dtool_vDgfu9Wa 282 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_num_pointers
//       Access: Public, Static
//  Description: Returns the number of pointers currently active.
//////////////////////////////////////////////////////////////////// 0 
956 14 Dtool_vDgf7lLT 0 4 929 2882 0 14 Dtool_vDgf7lLT 333 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_pointers
//       Access: Public, Static
//  Description: Fills the indicated MemoryUsagePointers with the set
//               of all pointers currently active.
//////////////////////////////////////////////////////////////////// 1 6 result 1 3052  
957 14 Dtool_vDgf4iVB 0 4 930 2882 0 14 Dtool_vDgf4iVB 380 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_pointers_of_type
//       Access: Public, Static
//  Description: Fills the indicated MemoryUsagePointers with the set
//               of all pointers of the indicated type currently
//               active.
//////////////////////////////////////////////////////////////////// 2 6 result 1 3052  4 type 1 2994  
958 14 Dtool_vDgfWkjk 0 4 931 2882 0 14 Dtool_vDgfWkjk 416 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_pointers_of_age
//       Access: Public, Static
//  Description: Fills the indicated MemoryUsagePointers with the set
//               of all pointers that were allocated within the range
//               of the indicated number of seconds ago.
//////////////////////////////////////////////////////////////////// 3 6 result 1 3052  4 from 1 2886  2 to 1 2886  
959 14 Dtool_vDgf0zJ5 0 4 932 2882 0 14 Dtool_vDgf0zJ5 1326 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::get_pointers_with_zero_count
//       Access: Public, Static
//  Description: Fills the indicated MemoryUsagePointers with the set
//               of all currently active pointers (that is, pointers
//               allocated since the last call to freeze(), and not
//               yet freed) that have a zero reference count.
//
//               Generally, an undeleted pointer with a zero reference
//               count means its reference count has never been
//               incremented beyond zero (since once it has been
//               incremented, the only way it can return to zero would
//               free the pointer).  This may include objects that are
//               allocated statically or on the stack, which are never
//               intended to be deleted.  Or, it might represent a
//               programmer or compiler error.
//
//               This function has the side-effect of incrementing
//               each of their reference counts by one, thus
//               preventing them from ever being freed--but since they
//               hadn't been freed anyway, probably no additional harm
//               is done.
//////////////////////////////////////////////////////////////////// 1 6 result 1 3052  
960 14 Dtool_vDgffpsO 0 4 933 2882 0 14 Dtool_vDgffpsO 574 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::freeze
//       Access: Public, Static
//  Description: 'Freezes' all pointers currently stored so that they
//               are no longer reported; only newly allocate pointers
//               from this point on will appear in future information
//               requests.  This makes it easier to differentiate
//               between continuous leaks and one-time memory
//               allocations.
//////////////////////////////////////////////////////////////////// 0 
961 14 Dtool_vDgfIacH 0 4 934 2882 0 14 Dtool_vDgfIacH 312 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::show_current_types
//       Access: Public, Static
//  Description: Shows the breakdown of types of all of the
//               active pointers.
//////////////////////////////////////////////////////////////////// 0 
962 14 Dtool_vDgfPdpO 0 4 935 2882 0 14 Dtool_vDgfPdpO 372 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::show_trend_types
//       Access: Public, Static
//  Description: Shows the breakdown of types of all of the
//               pointers allocated and freed since the last call to
//               freeze().
//////////////////////////////////////////////////////////////////// 0 
963 14 Dtool_vDgfCD9U 0 4 936 2882 0 14 Dtool_vDgfCD9U 310 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::show_current_ages
//       Access: Public, Static
//  Description: Shows the breakdown of ages of all of the
//               active pointers.
//////////////////////////////////////////////////////////////////// 0 
964 14 Dtool_vDgfy1oy 0 4 937 2882 0 14 Dtool_vDgfy1oy 370 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsage::show_trend_ages
//       Access: Public, Static
//  Description: Shows the breakdown of ages of all of the
//               pointers allocated and freed since the last call to
//               freeze().
//////////////////////////////////////////////////////////////////// 0 
965 14 Dtool_vDgfP11_ 0 6 944 2883 0 14 Dtool_vDgfP11_ 265 ////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::get_ref_count
//       Access: Published
//  Description: Returns the current reference count.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3053  
966 14 Dtool_vDgfaS5_ 0 4 945 2882 0 14 Dtool_vDgfaS5_ 896 ////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::ref
//       Access: Published
//  Description: 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.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3053  
967 14 Dtool_vDgfwyVy 0 6 946 2884 0 14 Dtool_vDgfwyVy 1336 ////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::unref
//       Access: Published, Virtual
//  Description: 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.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3053  
968 14 Dtool_vDgfvpj2 0 6 947 2884 0 14 Dtool_vDgfvpj2 395 ////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::test_ref_count_integrity
//       Access: Published
//  Description: Does some easy checks to make sure that the reference
//               count isn't completely bogus.  Returns true if ok,
//               false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3053  
969 14 Dtool_vDgftT6g 0 6 948 2884 0 14 Dtool_vDgftT6g 402 ////////////////////////////////////////////////////////////////////
//     Function: ReferenceCount::test_ref_count_nonzero
//       Access: Published
//  Description: Does some easy checks to make sure that the reference
//               count isn't zero, or completely bogus.  Returns true
//               if ok, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3053  
970 14 Dtool_vDgfn3ZO 0 7 949 2994 2262 14 Dtool_vDgfn3ZO 0 0 
971 14 Dtool_vDgf5zFh 0 6 941 3011 0 14 Dtool_vDgf5zFh 0 1 4 this 3 3055  
972 14 Dtool_vDgfKg08 0 7 942 3055 2321 14 Dtool_vDgfKg08 0 1 4 this 3 3011  
973 14 Dtool_vDgfBAQY 0 6 951 2883 0 14 Dtool_vDgfBAQY 695 // Filename: buffer.I
// Created by:  mike (09Jan97)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Buffer::get_length
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3056  
974 14 Dtool_vDgfYzxl 0 4 960 2882 0 14 Dtool_vDgfYzxl 0 2 4 this 3 3058  5 level 1 2886  
975 14 Dtool_vDgfm2GB 0 6 962 2883 0 14 Dtool_vDgfm2GB 274 ////////////////////////////////////////////////////////////////////
//     Function: NodeReferenceCount::get_node_ref_count
//       Access: Published
//  Description: Returns the current reference count.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059  
976 14 Dtool_vDgf9lbd 0 4 963 2882 0 14 Dtool_vDgf9lbd 338 ////////////////////////////////////////////////////////////////////
//     Function: NodeReferenceCount::node_ref
//       Access: Published
//  Description: Explicitly increments the node reference count and
//               the normal reference count simultaneously.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059  
977 14 Dtool_vDgfVC3D 0 6 964 2884 0 14 Dtool_vDgfVC3D 462 ////////////////////////////////////////////////////////////////////
//     Function: NodeReferenceCount::node_unref
//       Access: Published
//  Description: Explicitly decrements the node reference count and
//               the normal reference count simultaneously.
//
//               The return value is true if the new reference count
//               is nonzero, false if it is zero.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059  
978 14 Dtool_vDgfnZkN 0 6 965 2884 0 14 Dtool_vDgfnZkN 344 ////////////////////////////////////////////////////////////////////
//     Function: NodeReferenceCount::test_ref_count_integrity
//       Access: Published
//  Description: Does some easy checks to make sure that the reference
//               count isn't completely bogus.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3059  
979 14 Dtool_vDgfTnH7 0 7 966 2994 2262 14 Dtool_vDgfTnH7 0 0 
980 14 Dtool_vDgfCJxx 0 7 968 3061 2282 14 Dtool_vDgfCJxx 731 // Filename: datagram.I
// Created by:  drose (06Jun00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Datagram::Constructor
//       Access: Public
//  Description: Constructs an empty datagram.
//////////////////////////////////////////////////////////////////// 0 
981 14 Dtool_vDgfeUaC 0 7 968 3061 2282 14 Dtool_vDgfeUaC 222 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::Copy Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3062  
982 14 Dtool_vDgfgu3g 0 7 968 3061 2282 14 Dtool_vDgfgu3g 271 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::Constructor
//       Access: Public
//  Description: Constructs a datagram from an existing block of data.
//////////////////////////////////////////////////////////////////// 1 4 data 1 2880  
983 14 Dtool_vDgffPb_ 0 6 969 3061 0 14 Dtool_vDgffPb_ 230 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::Copy Assignment Operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  4 copy 1 3062  
984 14 Dtool_vDgfSYfy 0 4 970 2882 0 14 Dtool_vDgfSYfy 314 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::clear
//       Access: Public, Virtual
//  Description: Resets the datagram to empty, in preparation for
//               building up a new datagram.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3061  
985 14 Dtool_vDgfthFz 0 4 971 2882 0 14 Dtool_vDgfthFz 329 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::dump_hex
//       Access: Public
//  Description: Writes a representation of the entire datagram
//               contents, as a sequence of hex (and ASCII) values.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3062  3 out 1 2887  6 indent 1 2914  
986 14 Dtool_vDgfPUpE 0 4 971 2882 0 14 Dtool_vDgfPUpE 329 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::dump_hex
//       Access: Public
//  Description: Writes a representation of the entire datagram
//               contents, as a sequence of hex (and ASCII) values.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062  3 out 1 2887  
987 14 Dtool_vDgfO0pV 0 4 972 2882 0 14 Dtool_vDgfO0pV 252 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_bool
//       Access: Public
//  Description: Adds a boolean value to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2884  
988 14 Dtool_vDgfmQ0b 0 4 973 2882 0 14 Dtool_vDgfmQ0b 259 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_int8
//       Access: Public
//  Description: Adds a signed 8-bit integer to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 3027  
989 14 Dtool_vDgftZzT 0 4 974 2882 0 14 Dtool_vDgftZzT 263 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_uint8
//       Access: Public
//  Description: Adds an unsigned 8-bit integer to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2974  
990 14 Dtool_vDgfR6wM 0 4 975 2882 0 14 Dtool_vDgfR6wM 261 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_int16
//       Access: Public
//  Description: Adds a signed 16-bit integer to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 3028  
991 14 Dtool_vDgfyw0y 0 4 976 2882 0 14 Dtool_vDgfyw0y 261 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_int32
//       Access: Public
//  Description: Adds a signed 32-bit integer to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2883  
992 14 Dtool_vDgf2_qH 0 4 977 2882 0 14 Dtool_vDgf2_qH 261 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_int64
//       Access: Public
//  Description: Adds a signed 64-bit integer to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2885  
993 14 Dtool_vDgfPwfl 0 4 978 2882 0 14 Dtool_vDgfPwfl 265 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_uint16
//       Access: Public
//  Description: Adds an unsigned 16-bit integer to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 3029  
994 14 Dtool_vDgfZc5Z 0 4 979 2882 0 14 Dtool_vDgfZc5Z 265 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_uint32
//       Access: Public
//  Description: Adds an unsigned 32-bit integer to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2914  
995 14 Dtool_vDgfkyp3 0 4 980 2882 0 14 Dtool_vDgfkyp3 265 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_uint64
//       Access: Public
//  Description: Adds an unsigned 64-bit integer to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 3030  
996 14 Dtool_vDgf9aTM 0 4 981 2882 0 14 Dtool_vDgf9aTM 450 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_float32
//       Access: Public
//  Description: Adds a 32-bit single-precision floating-point number
//               to the datagram.  Since this kind of float is not
//               necessarily portable across different architectures,
//               special care is required.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2957  
997 14 Dtool_vDgfh7H7 0 4 982 2882 0 14 Dtool_vDgfh7H7 270 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_float64
//       Access: Public
//  Description: Adds a 64-bit floating-point number to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2886  
998 14 Dtool_vDgfzK61 0 4 983 2882 0 14 Dtool_vDgfzK61 327 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_stdfloat
//       Access: Public
//  Description: Adds either a 32-bit or a 64-bit floating-point
//               number, according to set_stdfloat_double().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2957  
999 14 Dtool_vDgfStGs 0 4 984 2882 0 14 Dtool_vDgfStGs 292 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_int16
//       Access: Public
//  Description: Adds a signed 16-bit big-endian integer to the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 3028  
1000 14 Dtool_vDgf0Dch 0 4 985 2882 0 14 Dtool_vDgf0Dch 292 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_int32
//       Access: Public
//  Description: Adds a signed 32-bit big-endian integer to the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2883  
1001 14 Dtool_vDgfia1n 0 4 986 2882 0 14 Dtool_vDgfia1n 292 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_int64
//       Access: Public
//  Description: Adds a signed 64-bit big-endian integer to the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2885  
1002 14 Dtool_vDgfvmv8 0 4 987 2882 0 14 Dtool_vDgfvmv8 296 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_uint16
//       Access: Public
//  Description: Adds an unsigned 16-bit big-endian integer to the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 3029  
1003 14 Dtool_vDgfkGod 0 4 988 2882 0 14 Dtool_vDgfkGod 296 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_uint32
//       Access: Public
//  Description: Adds an unsigned 32-bit big-endian integer to the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2914  
1004 14 Dtool_vDgffEpz 0 4 989 2882 0 14 Dtool_vDgffEpz 296 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_uint64
//       Access: Public
//  Description: Adds an unsigned 64-bit big-endian integer to the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 3030  
1005 14 Dtool_vDgfvJGy 0 4 990 2882 0 14 Dtool_vDgfvJGy 318 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_float32
//       Access: Public
//  Description: Adds a 32-bit single-precision big-endian
//               floating-point number to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2957  
1006 14 Dtool_vDgfk_M8 0 4 991 2882 0 14 Dtool_vDgfk_M8 301 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_be_float64
//       Access: Public
//  Description: Adds a 64-bit big-endian floating-point number to the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  5 value 1 2886  
1007 14 Dtool_vDgfLkWU 0 4 992 2882 0 14 Dtool_vDgfLkWU 329 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_string
//       Access: Public
//  Description: Adds a variable-length string to the datagram.  This
//               actually adds a count followed by n bytes.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  3 str 1 2880  
1008 14 Dtool_vDgfWlwF 0 4 993 2882 0 14 Dtool_vDgfWlwF 338 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_string32
//       Access: Public
//  Description: Adds a variable-length string to the datagram, using
//               a 32-bit length field to allow very long strings.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  3 str 1 2880  
1009 14 Dtool_vDgffOXB 0 4 994 2882 0 14 Dtool_vDgffOXB 311 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_z_string
//       Access: Public
//  Description: Adds a variable-length string to the datagram, as a
//               NULL-terminated string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  3 str 1 2880  
1010 14 Dtool_vDgf6J1o 0 4 995 2882 0 14 Dtool_vDgf6J1o 512 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_fixed_string
//       Access: Public
//  Description: Adds a fixed-length string to the datagram.  If the
//               string given is less than the requested size, this
//               will pad the string out with zeroes; if it is greater
//               than the requested size, this will silently truncate
//               the string.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3061  3 str 1 2880  4 size 1 2914  
1011 14 Dtool_vDgfwzVX 0 4 996 2882 0 14 Dtool_vDgfwzVX 265 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::add_wstring
//       Access: Public
//  Description: Adds a variable-length wstring to the datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  3 str 1 2880  
1012 14 Dtool_vDgfqdvo 0 4 997 2882 0 14 Dtool_vDgfqdvo 289 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::pad_bytes
//       Access: Public
//  Description: Adds the indicated number of zero bytes to the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  4 size 1 2914  
1013 14 Dtool_vDgf1lCb 0 4 998 2882 0 14 Dtool_vDgf1lCb 289 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::append_data
//       Access: Public
//  Description: Appends some more raw data to the end of the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  4 data 1 2880  
1014 14 Dtool_vDgfrWvj 0 6 1000 2880 0 14 Dtool_vDgfrWvj 258 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_message
//       Access: Public
//  Description: Returns the datagram's data as a string.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3062  
1015 14 Dtool_vDgfT0sE 0 4 1001 2882 0 14 Dtool_vDgfT0sE 290 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_data
//       Access: Public
//  Description: Returns a pointer to the beginning of the datagram's
//               data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3062  
1016 14 Dtool_vDgfkk_0 0 6 1002 2914 0 14 Dtool_vDgfkk_0 261 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_length
//       Access: Public
//  Description: Returns the number of bytes in the datagram.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3062  
1017 14 Dtool_vDgfgvMz 0 4 1003 2882 0 14 Dtool_vDgfgvMz 450 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::set_array
//       Access: Public
//  Description: Replaces the data in the Datagram with the data in
//               the indicated PTA_uchar.  This is assignment by
//               reference: subsequent changes to the Datagram will
//               also change the source PTA_uchar.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  4 data 1 3023  
1018 14 Dtool_vDgfv3Ez 0 4 1004 2882 0 14 Dtool_vDgfv3Ez 505 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::copy_array
//       Access: Public
//  Description: Replaces the data in the Datagram with a copy of the
//               data in the indicated CPTA_uchar.  Unlike
//               set_array(), a complete copy is made of the data;
//               subsequent changes to the Datagram will *not* change
//               the source CPTA_uchar.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  4 data 1 2971  
1019 14 Dtool_vDgf27U6 0 7 1005 2971 1767 14 Dtool_vDgf27U6 292 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_array
//       Access: Public
//  Description: Returns a const pointer to the actual data in
//               the Datagram.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3062  
1020 14 Dtool_vDgfDsO3 0 7 1006 3023 2130 14 Dtool_vDgfDsO3 300 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::modify_array
//       Access: Public
//  Description: Returns a modifiable pointer to the actual data in
//               the Datagram.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3061  
1021 14 Dtool_vDgfRcst 0 4 1007 2882 0 14 Dtool_vDgfRcst 648 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::set_stdfloat_double
//       Access: Public
//  Description: Changes the stdfloat_double flag, which defines the
//               operation performed by add_stdfloat() and
//               DatagramIterator::get_stdfloat().  When this is true,
//               add_stdfloat() adds a 64-bit floating-point number;
//               when it is false, it adds a 32-bit floating-point
//               number.  The default is based on the STDFLOAT_DOUBLE
//               compilation flag.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3061  15 stdfloat_double 1 2884  
1022 14 Dtool_vDgfCViv 0 6 1008 2884 0 14 Dtool_vDgfCViv 304 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::get_stdfloat_double
//       Access: Public
//  Description: Returns the stdfloat_double flag.  See
//               set_stdfloat_double().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3062  
1023 14 Dtool_vDgfN2MM 0 6 1009 2884 0 14 Dtool_vDgfN2MM 217 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::operator ==
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062  5 other 1 3062  
1024 14 Dtool_vDgfrt7L 0 6 1010 2884 0 14 Dtool_vDgfrt7L 217 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::operator !=
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062  5 other 1 3062  
1025 14 Dtool_vDgfhPT3 0 6 1011 2884 0 14 Dtool_vDgfhPT3 216 ////////////////////////////////////////////////////////////////////
//     Function: Datagram::operator <
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062  5 other 1 3062  
1026 14 Dtool_vDgf9OXp 0 4 1012 2882 0 14 Dtool_vDgf9OXp 290 ////////////////////////////////////////////////////////////////////
//     Function : Datagram::output
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062  3 out 1 2887  
1027 14 Dtool_vDgfm1mc 0 4 1013 2882 0 14 Dtool_vDgfm1mc 289 ////////////////////////////////////////////////////////////////////
//     Function : Datagram::write
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3062  3 out 1 2887  6 indent 1 2914  
1028 14 Dtool_vDgfXtYv 0 4 1013 2882 0 14 Dtool_vDgfXtYv 289 ////////////////////////////////////////////////////////////////////
//     Function : Datagram::write
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3062  3 out 1 2887  
1029 14 Dtool_vDgf4Vv_ 0 7 1014 2994 2262 14 Dtool_vDgf4Vv_ 0 0 
1030 14 Dtool_vDgfdfGa 0 6 1017 2884 0 14 Dtool_vDgfdfGa 0 2 4 this 3 3064  4 data 1 3061  
1031 14 Dtool_vDgfomht 0 6 1018 2884 0 14 Dtool_vDgfomht 725 ////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::save_datagram
//       Access: Published, Virtual
//  Description: Skips over the next datagram without extracting it,
//               but saves the relevant file information in the
//               SubfileInfo object so that its data may be read
//               later.  For non-file-based datagram generators, this
//               may mean creating a temporary file and copying the
//               contents of the datagram to disk.
//
//               Returns true on success, false on failure or if this
//               method is unimplemented.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3064  4 info 1 3065  
1032 14 Dtool_vDgfteR3 0 6 1019 2884 0 14 Dtool_vDgfteR3 0 1 4 this 3 3064  
1033 14 Dtool_vDgfG1W9 0 6 1020 2884 0 14 Dtool_vDgfG1W9 0 1 4 this 3 3064  
1034 14 Dtool_vDgfYNTK 0 6 1021 2910 0 14 Dtool_vDgfYNTK 419 ////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_filename
//       Access: Published, Virtual
//  Description: Returns the filename that provides the source for
//               these datagrams, if any, or empty string if the
//               datagrams do not originate from a file on disk.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3064  
1035 14 Dtool_vDgf7XWo 0 6 1022 2914 0 14 Dtool_vDgf7XWo 399 ////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_timestamp
//       Access: Published, Virtual
//  Description: Returns the on-disk timestamp of the file that was
//               read, at the time it was opened, if that is
//               available, or 0 if it is not.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3066  
1036 14 Dtool_vDgfXdnL 0 7 1023 3069 0 14 Dtool_vDgfXdnL 412 ////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_file
//       Access: Published, Virtual
//  Description: Returns the FileReference that provides the source for
//               these datagrams, if any, or NULL if the datagrams do
//               not originate from a file on disk.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3064  
1037 14 Dtool_vDgfpfX9 0 7 1024 3070 2638 14 Dtool_vDgfpfX9 410 ////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_vfile
//       Access: Published, Virtual
//  Description: Returns the VirtualFile that provides the source for
//               these datagrams, if any, or NULL if the datagrams do
//               not originate from a VirtualFile.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3064  
1038 14 Dtool_vDgfKzXi 0 6 1025 2883 0 14 Dtool_vDgfKzXi 646 ////////////////////////////////////////////////////////////////////
//     Function: DatagramGenerator::get_file_pos
//       Access: Published, Virtual
//  Description: Returns the current file position within the data
//               stream, if any, or 0 if the file position is not
//               meaningful or cannot be determined.
//
//               For DatagramGenerators that return a meaningful file
//               position, this will be pointing to the first byte
//               following the datagram returned after a call to
//               get_datagram().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3064  
1039 14 Dtool_vDgflJZb 0 7 1027 3071 2401 14 Dtool_vDgflJZb 717 // Filename: datagramIterator.I
// Created by:  drose (08May01)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1040 14 Dtool_vDgfEwZZ 0 7 1027 3071 2401 14 Dtool_vDgfEwZZ 225 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 8 datagram 1 3062  6 offset 1 2914  
1041 14 Dtool_vDgfz_OF 0 7 1027 3071 2401 14 Dtool_vDgfz_OF 225 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 datagram 1 3062  
1042 14 Dtool_vDgfYg7_ 0 7 1027 3071 2401 14 Dtool_vDgfYg7_ 230 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Copy Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3072  
1043 14 Dtool_vDgfnHKF 0 6 1028 3071 0 14 Dtool_vDgfnHKF 238 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::Copy Assignment Operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3071  4 copy 1 3072  
1044 14 Dtool_vDgfgFgv 0 6 1030 2884 0 14 Dtool_vDgfgFgv 329 // Various ways to get data and increment the iterator...
// Cut-and-paste-orama
////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_bool
//       Access: Public
//  Description: Extracts a boolean value.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1045 14 Dtool_vDgfFX9M 0 6 1031 3027 0 14 Dtool_vDgfFX9M 255 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_int8
//       Access: Public
//  Description: Extracts a signed 8-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1046 14 Dtool_vDgfD6SU 0 6 1032 2974 0 14 Dtool_vDgfD6SU 259 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_uint8
//       Access: Public
//  Description: Extracts an unsigned 8-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1047 14 Dtool_vDgfEVNl 0 6 1033 3028 0 14 Dtool_vDgfEVNl 257 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_int16
//       Access: Public
//  Description: Extracts a signed 16-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1048 14 Dtool_vDgfFcUY 0 6 1034 2883 0 14 Dtool_vDgfFcUY 257 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_int32
//       Access: Public
//  Description: Extracts a signed 32-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1049 14 Dtool_vDgfkKNB 0 6 1035 2885 0 14 Dtool_vDgfkKNB 257 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_int64
//       Access: Public
//  Description: Extracts a signed 64-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1050 14 Dtool_vDgfX2ad 0 6 1036 3029 0 14 Dtool_vDgfX2ad 261 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_uint16
//       Access: Public
//  Description: Extracts an unsigned 16-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1051 14 Dtool_vDgfpR_A 0 6 1037 2914 0 14 Dtool_vDgfpR_A 261 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_uint32
//       Access: Public
//  Description: Extracts an unsigned 32-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1052 14 Dtool_vDgfFGTd 0 6 1038 3030 0 14 Dtool_vDgfFGTd 261 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_uint64
//       Access: Public
//  Description: Extracts an unsigned 64-bit integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1053 14 Dtool_vDgfvFBB 0 6 1039 2957 0 14 Dtool_vDgfvFBB 300 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_float32
//       Access: Public
//  Description: Extracts a 32-bit single-precision floating-point
//               number.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1054 14 Dtool_vDgf0JoL 0 6 1040 2886 0 14 Dtool_vDgf0JoL 266 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_float64
//       Access: Public
//  Description: Extracts a 64-bit floating-point number.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1055 14 Dtool_vDgf5_yQ 0 6 1041 2957 0 14 Dtool_vDgf5_yQ 349 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_stdfloat
//       Access: Public
//  Description: Extracts either a 32-bit or a 64-bit floating-point
//               number, according to Datagram::set_stdfloat_double().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1056 14 Dtool_vDgfzzGa 0 6 1042 3028 0 14 Dtool_vDgfzzGa 271 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_int16
//       Access: Public
//  Description: Extracts a signed 16-bit big-endian integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1057 14 Dtool_vDgf6U9R 0 6 1043 2883 0 14 Dtool_vDgf6U9R 271 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_int32
//       Access: Public
//  Description: Extracts a signed 32-bit big-endian integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1058 14 Dtool_vDgfAdBm 0 6 1044 2885 0 14 Dtool_vDgfAdBm 271 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_int64
//       Access: Public
//  Description: Extracts a signed 64-bit big-endian integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1059 14 Dtool_vDgfe_MA 0 6 1045 3029 0 14 Dtool_vDgfe_MA 275 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_uint16
//       Access: Public
//  Description: Extracts an unsigned 16-bit big-endian integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1060 14 Dtool_vDgf7bZ7 0 6 1046 2914 0 14 Dtool_vDgf7bZ7 275 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_uint32
//       Access: Public
//  Description: Extracts an unsigned 32-bit big-endian integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1061 14 Dtool_vDgfF489 0 6 1047 3030 0 14 Dtool_vDgfF489 275 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_uint64
//       Access: Public
//  Description: Extracts an unsigned 64-bit big-endian integer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1062 14 Dtool_vDgfgTRq 0 6 1048 2957 0 14 Dtool_vDgfgTRq 314 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_float32
//       Access: Public
//  Description: Extracts a 32-bit big-endian single-precision
//               floating-point number.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1063 14 Dtool_vDgfjsC8 0 6 1049 2886 0 14 Dtool_vDgfjsC8 280 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_be_float64
//       Access: Public
//  Description: Extracts a 64-bit big-endian floating-point number.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1064 14 Dtool_vDgfxS8B 0 6 1050 2880 0 14 Dtool_vDgfxS8B 259 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_string
//       Access: Public
//  Description: Extracts a variable-length string.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1065 14 Dtool_vDgfp2Xo 0 6 1051 2880 0 14 Dtool_vDgfp2Xo 305 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_string32
//       Access: Public
//  Description: Extracts a variable-length string with a 32-bit
//               length field.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1066 14 Dtool_vDgfjyF6 0 6 1052 2880 0 14 Dtool_vDgfjyF6 307 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_z_string
//       Access: Public
//  Description: Extracts a variable-length string, as a
//               NULL-terminated string.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1067 14 Dtool_vDgfmT0q 0 6 1053 2880 0 14 Dtool_vDgfmT0q 379 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_fixed_string
//       Access: Public
//  Description: Extracts a fixed-length string.  However, if a zero
//               byte occurs within the string, it marks the end of
//               the string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3071  4 size 1 2914  
1068 14 Dtool_vDgfPayl 0 6 1054 2880 0 14 Dtool_vDgfPayl 307 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_wstring
//       Access: Public
//  Description: Extracts a variable-length wstring (with a 32-bit
//               length field).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3071  
1069 14 Dtool_vDgfTwSY 0 4 1055 2882 0 14 Dtool_vDgfTwSY 299 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::skip_bytes
//       Access: Public
//  Description: Skips over the indicated number of bytes in the
//               datagram.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3071  4 size 1 2914  
1070 14 Dtool_vDgf3j8S 0 6 1056 2880 0 14 Dtool_vDgf3j8S 329 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::extract_bytes
//       Access: Public
//  Description: Extracts the indicated number of bytes in the
//               datagram and returns them as a string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3071  4 size 1 2914  
1071 14 Dtool_vDgfyKhi 0 6 1057 2880 0 14 Dtool_vDgfyKhi 352 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_remaining_bytes
//       Access: Public
//  Description: Returns the remaining bytes in the datagram as a
//               string, but does not extract them from the iterator.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072  
1072 14 Dtool_vDgfOxKa 0 6 1058 2883 0 14 Dtool_vDgfOxKa 271 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_remaining_size
//       Access: Public
//  Description: Return the bytes left in the datagram.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072  
1073 14 Dtool_vDgfdg_H 0 6 1059 3062 0 14 Dtool_vDgfdg_H 264 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_datagram
//       Access: Public
//  Description: Return the datagram of this iterator.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072  
1074 14 Dtool_vDgf_KNH 0 6 1060 2914 0 14 Dtool_vDgf_KNH 335 ////////////////////////////////////////////////////////////////////
//     Function: DatagramIterator::get_current_index
//       Access: Public
//  Description: Returns the current position within the datagram of the
//               next piece of data to extract.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3072  
1075 14 Dtool_vDgfG38c 0 4 1061 2882 0 14 Dtool_vDgfG38c 280 ////////////////////////////////////////////////////////////////////
//     Function : output
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072  3 out 1 2887  
1076 14 Dtool_vDgfcoYU 0 4 1062 2882 0 14 Dtool_vDgfcoYU 279 ////////////////////////////////////////////////////////////////////
//     Function : write
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3072  3 out 1 2887  6 indent 1 2914  
1077 14 Dtool_vDgfuJe3 0 4 1062 2882 0 14 Dtool_vDgfuJe3 279 ////////////////////////////////////////////////////////////////////
//     Function : write
//       Access : Public
//  Description : Write a string representation of this instance to
//                <out>.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3072  3 out 1 2887  
1078 14 Dtool_vDgf_x0t 0 7 1063 2994 2262 14 Dtool_vDgf_x0t 0 0 
1079 14 Dtool_vDgf8kXb 0 6 1066 2884 0 14 Dtool_vDgf8kXb 0 2 4 this 3 3074  4 data 1 3062  
1080 14 Dtool_vDgfWo_F 0 6 1067 2884 0 14 Dtool_vDgfWo_F 661 ////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::copy_datagram
//       Access: Published, Virtual
//  Description: Copies the file data from the entire indicated
//               file (via the vfs) as the next datagram.  This is
//               intended to support potentially very large datagrams.
//
//               Returns true on success, false on failure or if this
//               method is unimplemented.  On true, fills "result"
//               with the information that references the copied file,
//               if possible.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3074  6 result 1 3065  8 filename 1 2910  
1081 14 Dtool_vDgf9d4d 0 6 1067 2884 0 14 Dtool_vDgf9d4d 691 ////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::copy_datagram
//       Access: Published, Virtual
//  Description: Copies the file data from the range of the indicated
//               file (outside of the vfs) as the next datagram.  This
//               is intended to support potentially very large
//               datagrams.
//
//               Returns true on success, false on failure or if this
//               method is unimplemented.  On true, fills "result"
//               with the information that references the copied file,
//               if possible.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3074  6 result 1 3065  6 source 1 3075  
1082 14 Dtool_vDgfngMM 0 6 1068 2884 0 14 Dtool_vDgfngMM 0 1 4 this 3 3074  
1083 14 Dtool_vDgfLW8s 0 4 1069 2882 0 14 Dtool_vDgfLW8s 0 1 4 this 3 3074  
1084 14 Dtool_vDgf_NqS 0 6 1070 2910 0 14 Dtool_vDgf_NqS 414 ////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::get_filename
//       Access: Published, Virtual
//  Description: Returns the filename that provides the target for
//               these datagrams, if any, or empty string if the
//               datagrams do not get written to a file on disk.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3074  
1085 14 Dtool_vDgf4FUz 0 7 1071 3069 0 14 Dtool_vDgf4FUz 403 ////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::get_file
//       Access: Published, Virtual
//  Description: Returns the FileReference that provides the target for
//               these datagrams, if any, or NULL if the datagrams do
//               not written to a file on disk.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3074  
1086 14 Dtool_vDgfaPse 0 6 1072 2883 0 14 Dtool_vDgfaPse 636 ////////////////////////////////////////////////////////////////////
//     Function: DatagramSink::get_file_pos
//       Access: Published, Virtual
//  Description: Returns the current file position within the data
//               stream, if any, or 0 if the file position is not
//               meaningful or cannot be determined.
//
//               For DatagramSinks that return a meaningful file
//               position, this will be pointing to the first byte
//               following the datagram returned after a call to
//               put_datagram().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3074  
1087 14 Dtool_vDgfWE3r 0 7 1089 2994 2262 14 Dtool_vDgfWE3r 0 0 
1088 14 Dtool_vDgfJ7TI 0 6 1085 3043 0 14 Dtool_vDgfJ7TI 0 1 4 this 3 3077  
1089 14 Dtool_vDgf3_Dr 0 7 1086 3077 2459 14 Dtool_vDgf3_Dr 0 1 4 this 3 3043  
1090 14 Dtool_vDgfKE8f 0 7 1087 3055 2321 14 Dtool_vDgfKE8f 0 1 4 this 3 3077  
1091 14 Dtool_vDgfsWXj 0 7 1088 3077 2459 14 Dtool_vDgfsWXj 0 1 4 this 3 3055  
1092 14 Dtool_vDgfyV0B 0 7 1092 3078 2463 14 Dtool_vDgfyV0B 714 // Filename: fileReference.I
// Created by:  drose (23Jun11)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: FileReference::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2910  
1093 14 Dtool_vDgfCKEX 0 6 1093 2910 0 14 Dtool_vDgfCKEX 265 ////////////////////////////////////////////////////////////////////
//     Function: FileReference::get_filename
//       Access: Published
//  Description: Returns the filename of the reference.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3069  
1094 14 Dtool_vDgfRZXb 0 7 1094 2994 2262 14 Dtool_vDgfRZXb 0 0 
1095 14 Dtool_vDgfzbIp 0 7 1097 3079 2473 14 Dtool_vDgfzbIp 701 // Filename: ramfile.I
// Created by:  mike (09Jan97)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Ramfile::constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1096 14 Dtool_vDgfKGYV 0 4 1098 2882 0 14 Dtool_vDgfKGYV 363 ////////////////////////////////////////////////////////////////////
//     Function: Ramfile::seek
//       Access: Published
//  Description: Moves the data pointer to the indicated byte
//               position.  It is not an error to move the pointer
//               past the end of data.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3079  3 pos 1 2914  
1097 14 Dtool_vDgfQvNL 0 6 1099 2914 0 14 Dtool_vDgfQvNL 322 ////////////////////////////////////////////////////////////////////
//     Function: Ramfile::tell
//       Access: Published
//  Description: Returns the current data pointer position as a byte
//               offset from the beginning of the stream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3080  
1098 14 Dtool_vDgfAU2w 0 6 1100 2880 0 14 Dtool_vDgfAU2w 594 ////////////////////////////////////////////////////////////////////
//     Function: Ramfile::read
//       Access: Published
//  Description: Extracts and returns the indicated number of
//               characters from the current data pointer, and
//               advances the data pointer.  If the data pointer
//               exceeds the end of the buffer, returns empty string.
//
//               The interface here is intentionally designed to be
//               similar to that for Python's file.read() function.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3079  6 length 1 2914  
1099 14 Dtool_vDgfCYbY 0 6 1101 2880 0 14 Dtool_vDgfCYbY 599 ////////////////////////////////////////////////////////////////////
//     Function: Ramfile::readline
//       Access: Published
//  Description: Assumes the stream represents a text file, and
//               extracts one line up to and including the trailing
//               newline character.  Returns empty string when the end
//               of file is reached.
//
//               The interface here is intentionally designed to be
//               similar to that for Python's file.readline()
//               function.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3079  
1100 14 Dtool_vDgfifN2 0 6 1102 2943 0 14 Dtool_vDgfifN2 0 1 4 this 3 3079  
1101 14 Dtool_vDgfBwPQ 0 6 1103 2880 0 14 Dtool_vDgfBwPQ 321 ////////////////////////////////////////////////////////////////////
//     Function: Ramfile::get_data
//       Access: Published
//  Description: Returns the entire buffer contents as a string,
//               regardless of the current data pointer.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3080  
1102 14 Dtool_vDgfPi28 0 6 1104 2914 0 14 Dtool_vDgfPi28 269 ////////////////////////////////////////////////////////////////////
//     Function: Ramfile::get_data_size
//       Access: Published
//  Description: Returns the size of the entire buffer contents.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3080  
1103 14 Dtool_vDgflxtV 0 4 1105 2882 0 14 Dtool_vDgflxtV 250 ////////////////////////////////////////////////////////////////////
//     Function: Ramfile::clear
//       Access: Published
//  Description: Empties the current buffer contents.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3079  
1104 14 Dtool_vDgfI_Ud 0 7 1108 3082 2503 14 Dtool_vDgfI_Ud 702 // Filename: hashVal.I
// Created by:  drose (14Nov00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: HashVal::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1105 14 Dtool_vDgfH_4C 0 7 1108 3082 2503 14 Dtool_vDgfH_4C 224 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::Copy Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3083  
1106 14 Dtool_vDgf3FRA 0 6 1109 3082 0 14 Dtool_vDgf3FRA 232 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::Copy Assignment Operator
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  4 copy 1 3083  
1107 14 Dtool_vDgfnq7I 0 6 1110 2884 0 14 Dtool_vDgfnq7I 219 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::operator ==
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  5 other 1 3083  
1108 14 Dtool_vDgf7G7E 0 6 1111 2884 0 14 Dtool_vDgf7G7E 219 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::operator !=
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  5 other 1 3083  
1109 14 Dtool_vDgfyVFW 0 6 1112 2884 0 14 Dtool_vDgfyVFW 218 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::operator <
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  5 other 1 3083  
1110 14 Dtool_vDgfpxYW 0 6 1113 2883 0 14 Dtool_vDgfpxYW 218 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::compare_to
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  5 other 1 3083  
1111 14 Dtool_vDgfvbg2 0 4 1114 2882 0 14 Dtool_vDgfvbg2 311 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::merge_with
//       Access: Published
//  Description: Generates a new HashVal representing the xor of this
//               one and the other one.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  5 other 1 3083  
1112 14 Dtool_vDgfPh3K 0 4 1115 2882 0 14 Dtool_vDgfPh3K 290 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::output_dec
//       Access: Published
//  Description: Outputs the HashVal as four unsigned decimal
//               integers.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  3 out 1 2887  
1113 14 Dtool_vDgfl92_ 0 4 1116 2882 0 14 Dtool_vDgfl92_ 267 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::input
//       Access: Published
//  Description: Inputs the HashVal as four unsigned decimal integers.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  2 in 1 2890  
1114 14 Dtool_vDgfn_Zx 0 4 1117 2882 0 14 Dtool_vDgfn_Zx 288 // HAVE_OPENSSL
////////////////////////////////////////////////////////////////////
//     Function: HashVal::output_hex
//       Access: Published
//  Description: Outputs the HashVal as a 32-digit hexadecimal number.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  3 out 1 2887  
1115 14 Dtool_vDgfZ1DR 0 4 1118 2882 0 14 Dtool_vDgfZ1DR 270 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::input_hex
//       Access: Published
//  Description: Inputs the HashVal as a 32-digit hexadecimal number.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  2 in 1 2890  
1116 14 Dtool_vDgf_T88 0 4 1119 2882 0 14 Dtool_vDgf_T88 370 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::output_binary
//       Access: Published
//  Description: Outputs the HashVal as a binary stream of bytes in
//               order.  This is not the same order generated by
//               write_stream().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  3 out 1 2887  
1117 14 Dtool_vDgf_JzH 0 4 1120 2882 0 14 Dtool_vDgf_JzH 366 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::input_binary
//       Access: Published
//  Description: Inputs the HashVal as a binary stream of bytes in
//               order.  This is not the same order expected by
//               read_stream().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  2 in 1 2890  
1118 14 Dtool_vDgfL3Nu 0 4 1121 2882 0 14 Dtool_vDgfL3Nu 215 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  3 out 1 2887  
1119 14 Dtool_vDgfzYur 0 6 1122 2880 0 14 Dtool_vDgfzYur 290 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::as_dec
//       Access: Published
//  Description: Returns the HashVal as a string with four decimal
//               numbers.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3083  
1120 14 Dtool_vDgfOC7K 0 6 1123 2884 0 14 Dtool_vDgfOC7K 336 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::set_from_dec
//       Access: Published
//  Description: Sets the HashVal from a string with four decimal
//               numbers.  Returns true if valid, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  4 text 1 2880  
1121 14 Dtool_vDgfyITU 0 6 1124 2880 0 14 Dtool_vDgfyITU 267 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::as_hex
//       Access: Published
//  Description: Returns the HashVal as a 32-byte hexadecimal string.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3083  
1122 14 Dtool_vDgfWCVt 0 6 1125 2884 0 14 Dtool_vDgfWCVt 334 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::set_from_hex
//       Access: Published
//  Description: Sets the HashVal from a 32-byte hexademical string.
//               Returns true if successful, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  4 text 1 2880  
1123 14 Dtool_vDgf8zkt 0 6 1126 2880 0 14 Dtool_vDgf8zkt 262 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::as_bin
//       Access: Published
//  Description: Returns the HashVal as a 16-byte binary string.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3083  
1124 14 Dtool_vDgfIsUA 0 6 1127 2884 0 14 Dtool_vDgfIsUA 329 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::set_from_bin
//       Access: Published
//  Description: Sets the HashVal from a 16-byte binary string.
//               Returns true if successful, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  4 text 1 2880  
1125 14 Dtool_vDgficbw 0 4 1128 2882 0 14 Dtool_vDgficbw 223 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::write_datagram
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  11 destination 1 3061  
1126 14 Dtool_vDgfo9e6 0 4 1129 2882 0 14 Dtool_vDgfo9e6 222 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::read_datagram
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  6 source 1 3071  
1127 14 Dtool_vDgfb0yS 0 4 1130 2882 0 14 Dtool_vDgfb0yS 221 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::write_stream
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3083  11 destination 1 3036  
1128 14 Dtool_vDgfUgPU 0 4 1131 2882 0 14 Dtool_vDgfUgPU 220 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::read_stream
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  6 source 1 3026  
1129 14 Dtool_vDgf1jdB 0 6 1132 2884 0 14 Dtool_vDgf1jdB 500 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_file
//       Access: Published
//  Description: Generates the hash value from the indicated file.
//               Returns true on success, false if the file cannot be
//               read.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  8 filename 1 2910  
1130 14 Dtool_vDgfHVPV 0 6 1133 2884 0 14 Dtool_vDgfHVPV 502 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_stream
//       Access: Published
//  Description: Generates the hash value from the indicated file.
//               Returns true on success, false if the file cannot be
//               read.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  6 stream 1 2890  
1131 14 Dtool_vDgfk7sL 0 4 1134 2882 0 14 Dtool_vDgfk7sL 433 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_ramfile
//       Access: Published
//  Description: Generates the hash value by hashing the indicated
//               data.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  7 ramfile 1 3080  
1132 14 Dtool_vDgfIiKt 0 4 1135 2882 0 14 Dtool_vDgfIiKt 432 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_string
//       Access: Published
//  Description: Generates the hash value by hashing the indicated
//               data.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3082  4 data 1 2880  
1133 14 Dtool_vDgfWiK7 0 4 1136 2882 0 14 Dtool_vDgfWiK7 432 ////////////////////////////////////////////////////////////////////
//     Function: HashVal::hash_buffer
//       Access: Published
//  Description: Generates the hash value by hashing the indicated
//               data.  This method is only defined if we have the
//               OpenSSL library (which provides md5 functionality)
//               available.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3082  6 buffer 1 2880  6 length 1 2883  
1134 14 Dtool_vDgf07zQ 0 7 1139 3052 2505 14 Dtool_vDgf07zQ 231 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1135 14 Dtool_vDgf2Eh_ 0 6 1141 2883 0 14 Dtool_vDgf2Eh_ 279 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_num_pointers
//       Access: Published
//  Description: Returns the number of pointers in the set.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3085  
1136 14 Dtool_vDgfTp6p 0 7 1142 3055 2321 14 Dtool_vDgfTp6p 267 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_pointer
//       Access: Published
//  Description: Returns the nth pointer of the set.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3085  1 n 1 2883  
1137 14 Dtool_vDgf_vMi 0 6 1143 3043 0 14 Dtool_vDgf_vMi 445 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_typed_pointer
//       Access: Published
//  Description: Returns the nth pointer of the set, typecast to a
//               TypedObject if possible.  If the pointer is not a
//               TypedObject or if the cast cannot be made, returns
//               NULL.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3085  1 n 1 2883  
1138 14 Dtool_vDgfqdPA 0 7 1144 2994 2262 14 Dtool_vDgfqdPA 305 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_type
//       Access: Published
//  Description: Returns the actual type of the nth pointer, if it is
//               known.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3085  1 n 1 2883  
1139 14 Dtool_vDgfEzrP 0 6 1145 2880 0 14 Dtool_vDgfEzrP 308 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_type_name
//       Access: Published
//  Description: Returns the type name of the nth pointer, if it is
//               known.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3085  1 n 1 2883  
1140 14 Dtool_vDgfWkMr 0 6 1146 2886 0 14 Dtool_vDgfWkMr 459 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::get_age
//       Access: Published
//  Description: Returns the age of the nth pointer: the number of
//               seconds elapsed between the time it was allocated and
//               the time it was added to this set via a call to
//               MemoryUsage::get_pointers().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3085  1 n 1 2883  
1141 14 Dtool_vDgftIUs 0 6 1147 2943 0 14 Dtool_vDgftIUs 0 2 4 this 3 3085  1 n 1 2883  
1142 14 Dtool_vDgf0z2G 0 4 1148 2882 0 14 Dtool_vDgf0z2G 254 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::clear
//       Access: Published
//  Description: Empties the set of pointers.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3052  
1143 14 Dtool_vDgfwA_7 0 4 1149 2882 0 14 Dtool_vDgfwA_7 227 ////////////////////////////////////////////////////////////////////
//     Function: MemoryUsagePointers::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3085  3 out 1 2887  
1144 14 Dtool_vDgfL5jx 0 7 1151 3087 2518 14 Dtool_vDgfL5jx 704 // Filename: subStream.I
// Created by:  drose (02Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: ISubStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1145 14 Dtool_vDgfy41P 0 7 1151 3087 2518 14 Dtool_vDgfy41P 219 ////////////////////////////////////////////////////////////////////
//     Function: ISubStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 3 6 source 1 3001  5 start 1 2982  3 end 1 2982  
1146 14 Dtool_vDgfe7pl 0 6 1152 3087 0 14 Dtool_vDgfe7pl 697 ////////////////////////////////////////////////////////////////////
//     Function: ISubStream::open
//       Access: Public
//  Description: Starts the SubStream reading from the indicated
//               source, with the first character being the character
//               at position "start" within the source, for end -
//               start total characters.  The character at "end"
//               within the source will never be read; this will
//               appear to be EOF.
//
//               If end is zero, it indicates that the ISubStream will
//               continue until the end of the source stream.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3087  6 source 1 3001  5 start 1 2982  3 end 1 2982  
1147 14 Dtool_vDgfklXc 0 6 1153 3087 0 14 Dtool_vDgfklXc 309 ////////////////////////////////////////////////////////////////////
//     Function: ISubStream::close
//       Access: Public
//  Description: Resets the SubStream to empty, but does not actually
//               close the source istream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3087  
1148 14 Dtool_vDgf5GVG 0 7 1156 3088 2522 14 Dtool_vDgf5GVG 219 ////////////////////////////////////////////////////////////////////
//     Function: OSubStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1149 14 Dtool_vDgfkC8p 0 7 1156 3088 2522 14 Dtool_vDgfkC8p 219 ////////////////////////////////////////////////////////////////////
//     Function: OSubStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 4 4 dest 1 3014  5 start 1 2982  3 end 1 2982  6 append 1 2884  
1150 14 Dtool_vDgfMin4 0 7 1156 3088 2522 14 Dtool_vDgfMin4 219 ////////////////////////////////////////////////////////////////////
//     Function: OSubStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 3 4 dest 1 3014  5 start 1 2982  3 end 1 2982  
1151 14 Dtool_vDgfgV1v 0 6 1157 3088 0 14 Dtool_vDgfgV1v 689 ////////////////////////////////////////////////////////////////////
//     Function: OSubStream::open
//       Access: Public
//  Description: Starts the SubStream reading from the indicated
//               dest, with the first character being the character
//               at position "start" within the dest, for end -
//               start total characters.  The character at "end"
//               within the dest will never be read; this will
//               appear to be EOF.
//
//               If end is zero, it indicates that the OSubStream will
//               continue until the end of the dest stream.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3088  4 dest 1 3014  5 start 1 2982  3 end 1 2982  6 append 1 2884  
1152 14 Dtool_vDgfXMFP 0 6 1157 3088 0 14 Dtool_vDgfXMFP 689 ////////////////////////////////////////////////////////////////////
//     Function: OSubStream::open
//       Access: Public
//  Description: Starts the SubStream reading from the indicated
//               dest, with the first character being the character
//               at position "start" within the dest, for end -
//               start total characters.  The character at "end"
//               within the dest will never be read; this will
//               appear to be EOF.
//
//               If end is zero, it indicates that the OSubStream will
//               continue until the end of the dest stream.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3088  4 dest 1 3014  5 start 1 2982  3 end 1 2982  
1153 14 Dtool_vDgfKQec 0 6 1158 3088 0 14 Dtool_vDgfKQec 307 ////////////////////////////////////////////////////////////////////
//     Function: OSubStream::close
//       Access: Public
//  Description: Resets the SubStream to empty, but does not actually
//               close the dest ostream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3088  
1154 14 Dtool_vDgfDvTU 0 7 1161 3089 2526 14 Dtool_vDgfDvTU 218 ////////////////////////////////////////////////////////////////////
//     Function: SubStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1155 14 Dtool_vDgfjvle 0 7 1161 3089 2526 14 Dtool_vDgfjvle 218 ////////////////////////////////////////////////////////////////////
//     Function: SubStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 4 6 nested 1 3031  5 start 1 2982  3 end 1 2982  6 append 1 2884  
1156 14 Dtool_vDgf0Vhi 0 7 1161 3089 2526 14 Dtool_vDgf0Vhi 218 ////////////////////////////////////////////////////////////////////
//     Function: SubStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 3 6 nested 1 3031  5 start 1 2982  3 end 1 2982  
1157 14 Dtool_vDgfI6I7 0 6 1162 3089 0 14 Dtool_vDgfI6I7 534 ////////////////////////////////////////////////////////////////////
//     Function: SubStream::open
//       Access: Public
//  Description: Starts the SubStream reading and writing from the
//               indicated nested stream, within the indicated range.
//               "end" is the first character outside of the range.
//
//               If end is zero, it indicates that the SubStream will
//               continue until the end of the nested stream.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3089  6 nested 1 3031  5 start 1 2982  3 end 1 2982  6 append 1 2884  
1158 14 Dtool_vDgfBnGd 0 6 1162 3089 0 14 Dtool_vDgfBnGd 534 ////////////////////////////////////////////////////////////////////
//     Function: SubStream::open
//       Access: Public
//  Description: Starts the SubStream reading and writing from the
//               indicated nested stream, within the indicated range.
//               "end" is the first character outside of the range.
//
//               If end is zero, it indicates that the SubStream will
//               continue until the end of the nested stream.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3089  6 nested 1 3031  5 start 1 2982  3 end 1 2982  
1159 14 Dtool_vDgf4Qy8 0 6 1163 3089 0 14 Dtool_vDgf4Qy8 308 ////////////////////////////////////////////////////////////////////
//     Function: SubStream::close
//       Access: Public
//  Description: Resets the SubStream to empty, but does not actually
//               close the nested ostream.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3089  
1160 14 Dtool_vDgfwqaa 0 7 1166 3090 2321 14 Dtool_vDgfwqaa 2443 //
// A Multifile consists of the following elements:
//
// (1) A header.  This is always the first n bytes of the Multifile,
// and contains a magic number to identify the file, as well as
// version numbers and any file-specific parameters.
//
//   char[6]    The string Multifile::_header, a magic number.
//   int16      The file's major version number
//   int16      The file's minor version number
//   uint32     Scale factor.  This scales all address references within
//              the file.  Normally 1, this may be set larger to
//              support Multifiles larger than 4GB.
//   uint32     An overall modification timestamp for the entire multifile.
//
// (2) Zero or more index entries, one for each subfile within the
// Multifile.  These entries are of variable length.  The first one of
// these immediately follows the header, and the first word of each
// index entry contains the address of the next index entry.  A zero
// "next" address marks the end of the chain.  These may appear at any
// point within the Multifile; they do not necessarily appear in
// sequential order at the beginning of the file (although they will
// after the file has been "packed").
//
//   uint32     The address of the next entry.  0 to mark the end.
//   uint32     The address of this subfile's data record.
//   uint32     The length in bytes of this subfile's data record.
//   uint16     The Subfile::_flags member.
//  [uint32]    The original, uncompressed and unencrypted length of the
//               subfile, if it is compressed or encrypted.  This field
//               is only present if one or both of the SF_compressed
//               or SF_encrypted bits are set in _flags.
//   uint32     A modification timestamp for the subfile.
//   uint16     The length in bytes of the subfile's name.
//   char[n]    The subfile's name.
//
// (3) Zero or more data entries, one for each subfile.  These may
// appear at any point within the Multifile; they do not necessarily
// follow each index entry, nor are they necessarily all grouped
// together at the end (although they will be all grouped together at
// the end after the file has been "packed").  These are just blocks
// of literal data.
//
////////////////////////////////////////////////////////////////////
//     Function: Multifile::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1161 14 Dtool_vDgfH5sK 0 6 1167 2884 0 14 Dtool_vDgfH5sK 651 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read
//       Access: Published
//  Description: Opens the named Multifile on disk for reading.  The
//               Multifile index is read in, and the list of subfiles
//               becomes available; individual subfiles may then be
//               extracted or read, but the list of subfiles may not
//               be modified.
//
//               Also see the version of open_read() which accepts an
//               istream.  Returns true on success, false on failure.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  14 multifile_name 1 2910  6 offset 1 2883  
1162 14 Dtool_vDgf9Q56 0 6 1167 2884 0 14 Dtool_vDgf9Q56 651 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read
//       Access: Published
//  Description: Opens the named Multifile on disk for reading.  The
//               Multifile index is read in, and the list of subfiles
//               becomes available; individual subfiles may then be
//               extracted or read, but the list of subfiles may not
//               be modified.
//
//               Also see the version of open_read() which accepts an
//               istream.  Returns true on success, false on failure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  14 multifile_name 1 2910  
1163 14 Dtool_vDgfQI1P 0 6 1167 2884 0 14 Dtool_vDgfQI1P 629 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read
//       Access: Public
//  Description: Opens an anonymous Multifile for reading using an
//               istream.  There must be seek functionality via
//               seekg() and tellg() on the istream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3090  16 multifile_stream 1 3001  12 owns_pointer 1 2884  6 offset 1 2883  
1164 14 Dtool_vDgf4z4L 0 6 1167 2884 0 14 Dtool_vDgf4z4L 629 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read
//       Access: Public
//  Description: Opens an anonymous Multifile for reading using an
//               istream.  There must be seek functionality via
//               seekg() and tellg() on the istream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  16 multifile_stream 1 3001  12 owns_pointer 1 2884  
1165 14 Dtool_vDgfNztD 0 6 1167 2884 0 14 Dtool_vDgfNztD 629 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read
//       Access: Public
//  Description: Opens an anonymous Multifile for reading using an
//               istream.  There must be seek functionality via
//               seekg() and tellg() on the istream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  16 multifile_stream 1 3001  
1166 14 Dtool_vDgffyBJ 0 6 1168 2884 0 14 Dtool_vDgffyBJ 734 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_write
//       Access: Published
//  Description: Opens the named Multifile on disk for writing.  If
//               there already exists a file by that name, it is
//               truncated.  The Multifile is then prepared for
//               accepting a brand new set of subfiles, which will be
//               written to the indicated filename.  Individual
//               subfiles may not be extracted or read.
//
//               Also see the version of open_write() which accepts an
//               ostream.  Returns true on success, false on failure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  14 multifile_name 1 2910  
1167 14 Dtool_vDgf2HOv 0 6 1168 2884 0 14 Dtool_vDgf2HOv 630 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_write
//       Access: Public
//  Description: Opens an anonymous Multifile for writing using an
//               ostream.  There must be seek functionality via
//               seekp() and tellp() on the pstream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  16 multifile_stream 1 2887  12 owns_pointer 1 2884  
1168 14 Dtool_vDgfciH3 0 6 1168 2884 0 14 Dtool_vDgfciH3 630 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_write
//       Access: Public
//  Description: Opens an anonymous Multifile for writing using an
//               ostream.  There must be seek functionality via
//               seekp() and tellp() on the pstream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  16 multifile_stream 1 2887  
1169 14 Dtool_vDgfIEQv 0 6 1169 2884 0 14 Dtool_vDgfIEQv 680 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read_write
//       Access: Published
//  Description: Opens the named Multifile on disk for reading and
//               writing.  If there already exists a file by that
//               name, its index is read.  Subfiles may be added or
//               removed, and the resulting changes will be written to
//               the named file.
//
//               Also see the version of open_read_write() which
//               accepts an iostream.  Returns true on success, false
//               on failure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  14 multifile_name 1 2910  
1170 14 Dtool_vDgf7Aku 0 6 1169 2884 0 14 Dtool_vDgf7Aku 682 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read_write
//       Access: Public
//  Description: Opens an anonymous Multifile for reading and writing
//               using an iostream.  There must be seek functionality
//               via seekg()/seekp() and tellg()/tellp() on the
//               iostream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  16 multifile_stream 1 2981  12 owns_pointer 1 2884  
1171 14 Dtool_vDgfZ3Zm 0 6 1169 2884 0 14 Dtool_vDgfZ3Zm 682 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read_write
//       Access: Public
//  Description: Opens an anonymous Multifile for reading and writing
//               using an iostream.  There must be seek functionality
//               via seekg()/seekp() and tellg()/tellp() on the
//               iostream.
//
//               If owns_pointer is true, then the Multifile assumes
//               ownership of the stream pointer and will delete it
//               when the multifile is closed, including if this
//               function returns false.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  16 multifile_stream 1 2981  
1172 14 Dtool_vDgfMa18 0 4 1170 2882 0 14 Dtool_vDgfMa18 402 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::close
//       Access: Published
//  Description: Closes the Multifile if it is open.  All changes are
//               flushed to disk, and the file becomes invalid for
//               further operations until the next call to open().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3090  
1173 14 Dtool_vDgfit0K 0 6 1171 2910 0 14 Dtool_vDgfit0K 788 // Filename: multifile.I
// Created by:  mike (09Jan97)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_multifile_name
//       Access: Published
//  Description: Returns the filename of the Multifile, if it is
//               available.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1174 14 Dtool_vDgfo4Nx 0 4 1172 2882 0 14 Dtool_vDgfo4Nx 471 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_multifile_name
//       Access: Published
//  Description: Replaces the filename of the Multifile.  This is
//               primarily used for documentation purposes only;
//               changing this name does not open the indicated file.
//               See open_read() or open_write() for that.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  14 multifile_name 1 2910  
1175 14 Dtool_vDgfbS6p 0 6 1173 2884 0 14 Dtool_vDgfbS6p 398 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_read_valid
//       Access: Published
//  Description: Returns true if the Multifile has been opened for
//               read mode and there have been no errors, and
//               individual Subfile contents may be extracted.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1176 14 Dtool_vDgfpFGO 0 6 1174 2884 0 14 Dtool_vDgfpFGO 407 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_write_valid
//       Access: Published
//  Description: Returns true if the Multifile has been opened for
//               write mode and there have been no errors, and
//               Subfiles may be added or removed from the Multifile.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1177 14 Dtool_vDgf0bT4 0 6 1175 2884 0 14 Dtool_vDgf0bT4 345 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::needs_repack
//       Access: Published
//  Description: Returns true if the Multifile index is suboptimal and
//               should be repacked.  Call repack() to achieve this.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1178 14 Dtool_vDgfU5Uu 0 6 1176 2914 0 14 Dtool_vDgfU5Uu 588 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_timestamp
//       Access: Published
//  Description: Returns the modification timestamp of the overall
//               Multifile.  This indicates the most recent date at
//               which subfiles were added or removed from the
//               Multifile.  Note that it is logically possible for an
//               individual subfile to have a more recent timestamp
//               than the overall timestamp.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1179 14 Dtool_vDgfueTw 0 4 1177 2882 0 14 Dtool_vDgfueTw 900 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_record_timestamp
//       Access: Published
//  Description: Sets the flag indicating whether timestamps should be
//               recorded within the Multifile or not.  The default is
//               true, indicating the Multifile will record timestamps
//               for the overall file and also for each subfile.  
//
//               If this is false, the Multifile will not record
//               timestamps internally.  In this case, the return
//               value from get_timestamp() or get_subfile_timestamp()
//               will be estimations.
//
//               You may want to set this false to minimize the
//               bitwise difference between independently-generated
//               Multifiles.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  16 record_timestamp 1 2884  
1180 14 Dtool_vDgfylFu 0 6 1178 2884 0 14 Dtool_vDgfylFu 388 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_record_timestamp
//       Access: Published
//  Description: Returns the flag indicating whether timestamps
//               should be recorded within the Multifile or not.  See
//               set_record_timestamp().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1181 14 Dtool_vDgf2jcN 0 4 1179 2882 0 14 Dtool_vDgf2jcN 1220 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_scale_factor
//       Access: Published
//  Description: Changes the internal scale factor for this Multifile.
//
//               This is normally 1, but it may be set to any
//               arbitrary value (greater than zero) to support
//               Multifile archives that exceed 4GB, if necessary.
//               (Individual subfiles may still not exceed 4GB.)
//
//               All addresses within the file are rounded up to the
//               next multiple of _scale_factor, and zeros are written
//               to the file to fill the resulting gaps.  Then the
//               address is divided by _scale_factor and written out
//               as a 32-bit integer.  Thus, setting a scale factor of
//               2 supports up to 8GB files, 3 supports 12GB files,
//               etc.
//
//               Calling this function on an already-existing
//               Multifile will have no immediate effect until a
//               future call to repack() or close() (or until the
//               Multifile is destructed).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  12 scale_factor 1 2914  
1182 14 Dtool_vDgfWN1X 0 6 1180 2914 0 14 Dtool_vDgfWN1X 321 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_scale_factor
//       Access: Published
//  Description: Returns the internal scale factor for this Multifile.
//               See set_scale_factor().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1183 14 Dtool_vDgfa6QQ 0 4 1181 2882 0 14 Dtool_vDgfa6QQ 818 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_flag
//       Access: Published
//  Description: Sets the flag indicating whether subsequently-added
//               subfiles should be encrypted before writing them to
//               the multifile.  If true, subfiles will be encrypted;
//               if false (the default), they will be written without
//               encryption.
//
//               When true, subfiles will be encrypted with the
//               password specified by set_encryption_password().  It
//               is possible to apply a different password to
//               different files, but the resulting file can't be
//               mounted via VFS.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  4 flag 1 2884  
1184 14 Dtool_vDgfDazL 0 6 1182 2884 0 14 Dtool_vDgfDazL 430 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_flag
//       Access: Published
//  Description: Returns the flag indicating whether
//               subsequently-added subfiles should be encrypted
//               before writing them to the multifile.  See
//               set_encryption_flag().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1185 14 Dtool_vDgf7mjs 0 4 1183 2882 0 14 Dtool_vDgf7mjs 696 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_password
//       Access: Published
//  Description: Specifies the password that will be used to encrypt
//               subfiles subsequently added to the multifile, if the
//               encryption flag is also set true (see
//               set_encryption_flag()).
//
//               It is possible to apply a different password to
//               different files, but the resulting file can't be
//               mounted via VFS.  Changing this value may cause an
//               implicit call to flush().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  19 encryption_password 1 2880  
1186 14 Dtool_vDgfSjUj 0 6 1184 2880 0 14 Dtool_vDgfSjUj 395 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_password
//       Access: Published
//  Description: Returns the password that will be used to encrypt
//               subfiles subsequently added to the multifile.  See
//               set_encryption_password().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1187 14 Dtool_vDgfwrql 0 4 1185 2882 0 14 Dtool_vDgfwrql 1073 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_algorithm
//       Access: Public
//  Description: Specifies the encryption algorithm that should be
//               used for future calls to add_subfile().  The default
//               is whatever is specified by the encryption-algorithm
//               config variable.  The complete set of available
//               algorithms is defined by the current version of
//               OpenSSL.
//
//               If an invalid algorithm is specified, there is no
//               immediate error return code, but flush() will fail
//               and the file will be invalid.
//
//               It is possible to apply a different encryption
//               algorithm to different files, and unlike the
//               password, this does not interfere with mounting the
//               multifile via VFS.  Changing this value may cause an
//               implicit call to flush().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  20 encryption_algorithm 1 2880  
1188 14 Dtool_vDgfN_wJ 0 6 1186 2880 0 14 Dtool_vDgfN_wJ 331 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_algorithm
//       Access: Public
//  Description: Returns the encryption algorithm that was specified
//               by set_encryption_algorithm().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1189 14 Dtool_vDgfOFfa 0 4 1187 2882 0 14 Dtool_vDgfOFfa 998 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_key_length
//       Access: Public
//  Description: Specifies the length of the key, in bits, that should
//               be used to encrypt the stream in future calls to
//               add_subfile().  The default is whatever is specified
//               by the encryption-key-length config variable.  
//
//               If an invalid key_length for the chosen algorithm is
//               specified, there is no immediate error return code,
//               but flush() will fail and the file will be invalid.
//
//               It is possible to apply a different key length to
//               different files, and unlike the password, this does
//               not interfere with mounting the multifile via VFS.
//               Changing this value may cause an implicit call to
//               flush().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  21 encryption_key_length 1 2883  
1190 14 Dtool_vDgfIEKW 0 6 1188 2883 0 14 Dtool_vDgfIEKW 344 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_key_length
//       Access: Public
//  Description: Returns the encryption key length, in bits, that was
//               specified by set_encryption_key_length().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1191 14 Dtool_vDgfOTvt 0 4 1189 2882 0 14 Dtool_vDgfOTvt 1174 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_encryption_iteration_count
//       Access: Public
//  Description: Specifies the number of times to repeatedly hash the
//               key before writing it to the stream in future calls
//               to add_subfile().  Its purpose is to make it
//               computationally more expensive for an attacker to
//               search the key space exhaustively.  This should be a
//               multiple of 1,000 and should not exceed about 65
//               million; the value 0 indicates just one application
//               of the hashing algorithm.
//
//               The default is whatever is specified by the
//               multifile-encryption-iteration-count config variable.
//
//               It is possible to apply a different iteration count
//               to different files, and unlike the password, this
//               does not interfere with mounting the multifile via
//               VFS.  Changing this value causes an implicit call to
//               flush().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  26 encryption_iteration_count 1 2883  
1192 14 Dtool_vDgf_0WC 0 6 1190 2883 0 14 Dtool_vDgf_0WC 328 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_encryption_iteration_count
//       Access: Public
//  Description: Returns the value that was specified by
//               set_encryption_iteration_count().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1193 14 Dtool_vDgfDhxy 0 6 1191 2880 0 14 Dtool_vDgfDhxy 983 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_subfile
//       Access: Published
//  Description: Adds a file on disk as a subfile to the Multifile.
//               The file named by filename will be read and added to
//               the Multifile at the next call to flush().  If there
//               already exists a subfile with the indicated name, it
//               is replaced without examining its contents (but see
//               also update_subfile).
//
//               Filename::set_binary() or set_text() must have been
//               called previously to specify the nature of the source
//               file.  If set_text() was called, the text flag will
//               be set on the subfile.
//
//               Returns the subfile name on success (it might have
//               been modified slightly), or empty string on failure.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3090  12 subfile_name 1 2880  8 filename 1 2910  17 compression_level 1 2883  
1194 14 Dtool_vDgfuXK4 0 6 1191 2880 0 14 Dtool_vDgfuXK4 1193 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_subfile
//       Access: Public
//  Description: Adds a file from a stream as a subfile to the Multifile.
//               The indicated istream will be read and its contents
//               added to the Multifile at the next call to flush().
//               The file will be added as a binary subfile.
//
//               Note that the istream must remain untouched and
//               unused by any other code until flush() is called.  At
//               that time, the Multifile will read the entire
//               contents of the istream from the current file
//               position to the end of the file.  Subsequently, the
//               Multifile will *not* close or delete the istream.  It
//               is the caller's responsibility to ensure that the
//               istream pointer does not destruct during the lifetime
//               of the Multifile.
//
//               Returns the subfile name on success (it might have
//               been modified slightly), or empty string on failure.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3090  12 subfile_name 1 2880  12 subfile_data 1 2890  17 compression_level 1 2883  
1195 14 Dtool_vDgfz3H7 0 6 1192 2880 0 14 Dtool_vDgfz3H7 775 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::update_subfile
//       Access: Published
//  Description: Adds a file on disk to the subfile.  If a subfile
//               already exists with the same name, its contents are
//               compared byte-for-byte to the disk file, and it is
//               replaced only if it is different; otherwise, the
//               multifile is left unchanged.
//
//               Filename::set_binary() or set_text() must have been
//               called previously to specify the nature of the source
//               file.  If set_text() was called, the text flag will
//               be set on the subfile.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3090  12 subfile_name 1 2880  8 filename 1 2910  17 compression_level 1 2883  
1196 14 Dtool_vDgfqbym 0 6 1195 2884 0 14 Dtool_vDgfqbym 1856 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               The chain filename may be empty if the certificate
//               does not require an authenticating certificate chain
//               (e.g. because it is self-signed).
//
//               The specified private key must match the certificate,
//               and the Multifile must be open in read-write mode.
//               The private key is only used for generating the
//               signature; it is not written to the Multifile and
//               cannot be retrieved from the Multifile later.
//               (However, the certificate *can* be retrieved from the
//               Multifile later, to identify the entity that created
//               the signature.)
//
//               This implicitly causes a repack() operation if one is
//               needed.  Returns true on success, false on failure.
//
//               This flavor of add_signature() reads the certificate
//               and private key from a PEM-formatted file, for
//               instance as generated by the openssl command.  If the
//               private key file is password-encrypted, the third
//               parameter will be used as the password to decrypt it.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3090  11 certificate 1 2910  5 chain 1 2910  4 pkey 1 2910  8 password 1 2880  
1197 14 Dtool_vDgf89Td 0 6 1195 2884 0 14 Dtool_vDgf89Td 1856 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               The chain filename may be empty if the certificate
//               does not require an authenticating certificate chain
//               (e.g. because it is self-signed).
//
//               The specified private key must match the certificate,
//               and the Multifile must be open in read-write mode.
//               The private key is only used for generating the
//               signature; it is not written to the Multifile and
//               cannot be retrieved from the Multifile later.
//               (However, the certificate *can* be retrieved from the
//               Multifile later, to identify the entity that created
//               the signature.)
//
//               This implicitly causes a repack() operation if one is
//               needed.  Returns true on success, false on failure.
//
//               This flavor of add_signature() reads the certificate
//               and private key from a PEM-formatted file, for
//               instance as generated by the openssl command.  If the
//               private key file is password-encrypted, the third
//               parameter will be used as the password to decrypt it.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3090  11 certificate 1 2910  5 chain 1 2910  4 pkey 1 2910  
1198 14 Dtool_vDgfigeL 0 6 1195 2884 0 14 Dtool_vDgfigeL 1131 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               This flavor of add_signature() reads the certificate,
//               private key, and certificate chain from the same
//               PEM-formatted file.  It takes the first private key
//               found as the intended key, and then uses the first
//               certificate found that matches that key as the
//               signing certificate.  Any other certificates in the
//               file are taken to be part of the chain.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  9 composite 1 2910  8 password 1 2880  
1199 14 Dtool_vDgfll9W 0 6 1195 2884 0 14 Dtool_vDgfll9W 1131 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               This flavor of add_signature() reads the certificate,
//               private key, and certificate chain from the same
//               PEM-formatted file.  It takes the first private key
//               found as the intended key, and then uses the first
//               certificate found that matches that key as the
//               signing certificate.  Any other certificates in the
//               file are taken to be part of the chain.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  9 composite 1 2910  
1200 14 Dtool_vDgfZz0C 0 6 1195 2884 0 14 Dtool_vDgfZz0C 1532 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::add_signature
//       Access: Published
//  Description: Adds a new signature to the Multifile.  This
//               signature associates the indicated certificate with
//               the current contents of the Multifile.  When the
//               Multifile is read later, the signature will still be
//               present only if the Multifile is unchanged; any
//               subsequent changes to the Multifile will
//               automatically invalidate and remove the signature.
//
//               The signature certificate is the first certificate on
//               the CertChain object.  Any remaining certificates are
//               support certificates to authenticate the first one.
//
//               The specified private key must match the certificate,
//               and the Multifile must be open in read-write mode.
//               The private key is only used for generating the
//               signature; it is not written to the Multifile and
//               cannot be retrieved from the Multifile later.
//               (However, the certificate *can* be retrieved from the
//               Multifile later, to identify the entity that created
//               the signature.)
//
//               This implicitly causes a repack() operation if one is
//               needed.  Returns true on success, false on failure.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  5 chain 1 3093  4 pkey 1 3096  
1201 14 Dtool_vDgfKvMM 0 6 1196 2883 0 14 Dtool_vDgfKvMM 921 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_num_signatures
//       Access: Published
//  Description: Returns the number of matching signatures found on
//               the Multifile.  These signatures may be iterated via
//               get_signature() and related methods.
//
//               A signature on this list is guaranteed to match the
//               Multifile contents, proving that the Multifile has
//               been unmodified since the signature was applied.
//               However, this does not guarantee that the certificate
//               itself is actually from who it says it is from; only
//               that it matches the Multifile contents.  See
//               validate_signature_certificate() to authenticate a
//               particular certificate.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1202 14 Dtool_vDgf60_P 0 6 1197 3093 0 14 Dtool_vDgf60_P 332 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_signature
//       Access: Published
//  Description: Returns the nth signature found on the Multifile.
//               See the comments in get_num_signatures().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  1 n 1 2883  
1203 14 Dtool_vDgfQ6Ip 0 6 1198 2880 0 14 Dtool_vDgfQ6Ip 669 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_signature_subject_name
//       Access: Published
//  Description: Returns the "subject name" for the nth signature found
//               on the Multifile.  This is a string formatted
//               according to RFC2253 that should more-or-less
//               identify a particular certificate; when paired with
//               the public key (see get_signature_public_key()), it
//               can uniquely identify a certificate.  See the
//               comments in get_num_signatures().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  1 n 1 2883  
1204 14 Dtool_vDgfft_9 0 6 1199 2880 0 14 Dtool_vDgfft_9 598 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_signature_friendly_name
//       Access: Published
//  Description: Returns a "friendly name" for the nth signature found
//               on the Multifile.  This attempts to extract out the
//               most meaningful part of the subject name.  It returns
//               the emailAddress, if it is defined; otherwise, it
//               returns the commonName.
//               See the comments in get_num_signatures().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  1 n 1 2883  
1205 14 Dtool_vDgfEK3x 0 6 1200 2880 0 14 Dtool_vDgfEK3x 691 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_signature_public_key
//       Access: Published
//  Description: Returns the public key used for the nth signature
//               found on the Multifile.  This is encoded in DER form
//               and returned as a string of hex digits.
//
//               This can be used, in conjunction with the subject
//               name (see get_signature_subject_name()), to uniquely
//               identify a particular certificate and its subsequent
//               reissues.  See the comments in get_num_signatures().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  1 n 1 2883  
1206 14 Dtool_vDgfKPpD 0 4 1201 2882 0 14 Dtool_vDgfKPpD 415 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::print_signature_certificate
//       Access: Published
//  Description: Writes the certificate for the nth signature, in
//               user-readable verbose form, to the indicated stream.
//               See the comments in get_num_signatures().
//////////////////////////////////////////////////////////////////// 3 4 this 3 3091  1 n 1 2883  3 out 1 2887  
1207 14 Dtool_vDgfAJfy 0 4 1202 2882 0 14 Dtool_vDgfAJfy 398 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::write_signature_certificate
//       Access: Published
//  Description: Writes the certificate for the nth signature, in
//               PEM form, to the indicated stream.  See the comments
//               in get_num_signatures().
//////////////////////////////////////////////////////////////////// 3 4 this 3 3091  1 n 1 2883  3 out 1 2887  
1208 14 Dtool_vDgfT0ZM 0 6 1203 2883 0 14 Dtool_vDgfT0ZM 595 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::validate_signature_certificate
//       Access: Published
//  Description: Checks that the certificate used for the nth
//               signature is a valid, authorized certificate with
//               some known certificate authority.  Returns 0 if it
//               is valid, -1 if there is some error, or the
//               corresponding OpenSSL error code if it is invalid,
//               out-of-date, or self-signed.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  1 n 1 2883  
1209 14 Dtool_vDgf7cnZ 0 6 1204 2884 0 14 Dtool_vDgf7cnZ 1106 // HAVE_OPENSSL
////////////////////////////////////////////////////////////////////
//     Function: Multifile::flush
//       Access: Published
//  Description: Writes all contents of the Multifile to disk.  Until
//               flush() is called, add_subfile() and remove_subfile()
//               do not actually do anything to disk.  At this point,
//               all of the recently-added subfiles are read and their
//               contents are added to the end of the Multifile, and
//               the recently-removed subfiles are marked gone from
//               the Multifile.
//
//               This may result in a suboptimal index.  To guarantee
//               that the index is written at the beginning of the
//               file, call repack() instead of flush().
//
//               It is not necessary to call flush() explicitly unless
//               you are concerned about reading the recently-added
//               subfiles immediately.
//
//               Returns true on success, false on failure.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3090  
1210 14 Dtool_vDgfhLqr 0 6 1205 2884 0 14 Dtool_vDgfhLqr 959 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::repack
//       Access: Published
//  Description: Forces a complete rewrite of the Multifile and all of
//               its contents, so that its index will appear at the
//               beginning of the file with all of the subfiles listed
//               in alphabetical order.  This is considered optimal
//               for reading, and is the standard configuration; but
//               it is not essential to do this.
//
//               It is only valid to call this if the Multifile was
//               opened using open_read_write() and an explicit
//               filename, rather than an iostream.  Also, we must
//               have write permission to the directory containing the
//               Multifile.
//
//               Returns true on success, false on failure.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3090  
1211 14 Dtool_vDgfCa0B 0 6 1206 2883 0 14 Dtool_vDgfCa0B 412 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_num_subfiles
//       Access: Published
//  Description: Returns the number of subfiles within the Multifile.
//               The subfiles may be accessed in alphabetical order by
//               iterating through [0 .. get_num_subfiles()).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1212 14 Dtool_vDgfAvHU 0 6 1207 2883 0 14 Dtool_vDgfAvHU 370 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::find_subfile
//       Access: Published
//  Description: Returns the index of the subfile with the indicated
//               name, or -1 if the named subfile is not within the
//               Multifile.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  12 subfile_name 1 2880  
1213 14 Dtool_vDgf_fnT 0 6 1208 2884 0 14 Dtool_vDgf_fnT 461 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::has_directory
//       Access: Published
//  Description: Returns true if the indicated subfile name is the
//               directory prefix to one or more files within the
//               Multifile.  That is, the Multifile contains at least
//               one file named "subfile_name/...".
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  12 subfile_name 1 2880  
1214 14 Dtool_vDgfC9bD 0 6 1209 2884 0 14 Dtool_vDgfC9bD 755 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::scan_directory
//       Access: Published
//  Description: Considers subfile_name to be the name of a
//               subdirectory within the Multifile, but not a file
//               itself; fills the given vector up with the sorted list
//               of subdirectories or files within the named
//               directory.
//
//               Note that directories do not exist explicitly within
//               a Multifile; this just checks for the existence of
//               files with the given initial prefix.
//
//               Returns true if successful, false otherwise.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3091  8 contents 1 2987  12 subfile_name 1 2880  
1215 14 Dtool_vDgfllPZ 0 6 1210 2884 0 14 Dtool_vDgfllPZ 824 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::remove_subfile
//       Access: Published
//  Description: Removes the named subfile from the Multifile, if it
//               exists; returns true if successfully removed, or
//               false if it did not exist in the first place.  The
//               file will not actually be removed from the disk until
//               the next call to flush().
//
//               Note that this does not actually remove the data from
//               the indicated subfile; it simply removes it from the
//               index.  The Multifile will not be reduced in size
//               after this operation, until the next call to
//               repack().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  12 subfile_name 1 2880  
1216 14 Dtool_vDgfyAb8 0 4 1210 2882 0 14 Dtool_vDgfyAb8 770 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::remove_subfile
//       Access: Published
//  Description: Removes the nth subfile from the Multifile.  This
//               will cause all subsequent index numbers to decrease
//               by one.  The file will not actually be removed from
//               the disk until the next call to flush().
//
//               Note that this does not actually remove the data from
//               the indicated subfile; it simply removes it from the
//               index.  The Multifile will not be reduced in size
//               after this operation, until the next call to
//               repack().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  5 index 1 2883  
1217 14 Dtool_vDgfUz_f 0 6 1211 2880 0 14 Dtool_vDgfUz_f 263 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_name
//       Access: Published
//  Description: Returns the name of the nth subfile.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  5 index 1 2883  
1218 14 Dtool_vDgfeCrf 0 6 1212 2914 0 14 Dtool_vDgfeCrf 433 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_length
//       Access: Published
//  Description: Returns the uncompressed data length of the nth
//               subfile.  This might return 0 if the subfile has
//               recently been added and flush() has not yet been
//               called.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  5 index 1 2883  
1219 14 Dtool_vDgfzErL 0 6 1213 2914 0 14 Dtool_vDgfzErL 567 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_timestamp
//       Access: Published
//  Description: Returns the modification time of the nth
//               subfile.  If this is called on an older .mf file,
//               which did not store individual timestamps in the file
//               (or if get_record_timestamp() is false), this will
//               return the modification time of the overall
//               multifile.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  5 index 1 2883  
1220 14 Dtool_vDgfYA9O 0 6 1214 2884 0 14 Dtool_vDgfYA9O 372 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_subfile_compressed
//       Access: Published
//  Description: Returns true if the indicated subfile has been
//               compressed when stored within the archive, false
//               otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  5 index 1 2883  
1221 14 Dtool_vDgflEUv 0 6 1215 2884 0 14 Dtool_vDgflEUv 370 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_subfile_encrypted
//       Access: Published
//  Description: Returns true if the indicated subfile has been
//               encrypted when stored within the archive, false
//               otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  5 index 1 2883  
1222 14 Dtool_vDgfjSDi 0 6 1216 2884 0 14 Dtool_vDgfjSDi 647 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::is_subfile_text
//       Access: Published
//  Description: Returns true if the indicated subfile represents text
//               data, or false if it represents binary data.  If the
//               file is text data, it may have been processed by
//               end-of-line conversion when it was added.  (But the
//               actual bits in the multifile will represent the
//               standard Unix end-of-line convention, e.g. \n instead
//               of \r\n.)
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  5 index 1 2883  
1223 14 Dtool_vDgfw4OY 0 6 1217 2883 0 14 Dtool_vDgfw4OY 688 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_index_end
//       Access: Published
//  Description: Returns the first byte that is guaranteed to follow
//               any index byte already written to disk in the
//               Multifile.
//
//               This number is largely meaningless in many cases, but
//               if needs_repack() is false, and the file is flushed,
//               this will indicate the number of bytes in the header
//               + index.  Everything at this byte position and later
//               will be actual data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1224 14 Dtool_vDgf2Ow3 0 6 1218 2883 0 14 Dtool_vDgf2Ow3 653 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_internal_start
//       Access: Published
//  Description: Returns the starting byte position within the
//               Multifile at which the indicated subfile begins.
//               This may be used, with get_subfile_internal_length(),
//               for low-level access to the subfile, but usually it
//               is better to use open_read_subfile() instead (which
//               automatically decrypts and/or uncompresses the
//               subfile data).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  5 index 1 2883  
1225 14 Dtool_vDgfqvJ_ 0 6 1219 2914 0 14 Dtool_vDgfqvJ_ 639 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_subfile_internal_length
//       Access: Published
//  Description: Returns the number of bytes the indicated subfile
//               consumes within the archive.  For compressed
//               subfiles, this will generally be smaller than
//               get_subfile_length(); for encrypted (but
//               noncompressed) subfiles, it may be slightly
//               different, for noncompressed and nonencrypted
//               subfiles, it will be equal.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  5 index 1 2883  
1226 14 Dtool_vDgfNjWf 0 6 1220 2880 0 14 Dtool_vDgfNjWf 316 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::read_subfile
//       Access: Published
//  Description: Returns a string that contains the entire contents of
//               the indicated subfile.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  5 index 1 2883  
1227 14 Dtool_vDgfGXxf 0 6 1221 2890 0 14 Dtool_vDgfGXxf 1184 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::open_read_subfile
//       Access: Published
//  Description: Returns an istream that may be used to read the
//               indicated subfile.  You may seek() within this
//               istream to your heart's content; even though it will
//               be a reference to the already-opened pfstream of the
//               Multifile itself, byte 0 appears to be the beginning
//               of the subfile and EOF appears to be the end of the
//               subfile.
//
//               The returned istream will have been allocated via
//               new; you should pass the pointer to
//               close_read_subfile() when you are finished with it to
//               delete it and release its resources.
//
//               Any future calls to repack() or close() (or the
//               Multifile destructor) will invalidate all currently
//               open subfile pointers.
//
//               The return value will be NULL if the stream cannot be
//               opened for some reason.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  5 index 1 2883  
1228 14 Dtool_vDgfoe15 0 4 1222 2882 0 14 Dtool_vDgfoe15 531 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::close_read_subfile
//       Access: Published, Static
//  Description: Closes a file opened by a previous call to
//               open_read_subfile().  This really just deletes the
//               istream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
//////////////////////////////////////////////////////////////////// 1 6 stream 1 2890  
1229 14 Dtool_vDgfxPcf 0 6 1223 2884 0 14 Dtool_vDgfxPcf 300 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::extract_subfile
//       Access: Published
//  Description: Extracts the nth subfile into a file with the given
//               name.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  5 index 1 2883  8 filename 1 2910  
1230 14 Dtool_vDgfRGB7 0 6 1224 2884 0 14 Dtool_vDgfRGB7 276 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::extract_subfile_to
//       Access: Public
//  Description: Extracts the nth subfile to the indicated ostream.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  5 index 1 2883  3 out 1 2887  
1231 14 Dtool_vDgf0DCF 0 6 1225 2884 0 14 Dtool_vDgf0DCF 858 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::compare_subfile
//       Access: Published
//  Description: Performs a byte-for-byte comparison of the indicated
//               file on disk with the nth subfile.  Returns true if
//               the files are equivalent, or false if they are
//               different (or the file is missing).
//
//               If Filename::set_binary() or set_text() has already
//               been called, it specifies the nature of the source
//               file.  If this is different from the text flag of the
//               subfile, the comparison will always return false.
//               If this has not been specified, it will be set from
//               the text flag of the subfile.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3090  5 index 1 2883  8 filename 1 2910  
1232 14 Dtool_vDgfHX_Y 0 4 1226 2882 0 14 Dtool_vDgfHX_Y 217 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  3 out 1 2887  
1233 14 Dtool_vDgf_Zzn 0 4 1227 2882 0 14 Dtool_vDgf_Zzn 263 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::ls
//       Access: Published
//  Description: Shows a list of all subfiles within the Multifile.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3091  3 out 1 2887  
1234 14 Dtool_vDgfhACw 0 4 1227 2882 0 14 Dtool_vDgfhACw 263 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::ls
//       Access: Published
//  Description: Shows a list of all subfiles within the Multifile.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1235 14 Dtool_vDgfZpID 0 6 1228 2880 0 14 Dtool_vDgfZpID 346 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_magic_number
//       Access: Published, Static
//  Description: Returns a string with the first n bytes written to a
//               Multifile, to identify it as a Multifile.
//////////////////////////////////////////////////////////////////// 0 
1236 14 Dtool_vDgfoxE_ 0 4 1229 2882 0 14 Dtool_vDgfoxE_ 1041 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::set_header_prefix
//       Access: Published
//  Description: Sets the string which is written to the Multifile
//               before the Multifile header.  This string must begin
//               with a hash mark and end with a newline character;
//               and if it includes embedded newline characters, each
//               one must be followed by a hash mark.  If these
//               conditions are not initially true, the string will be
//               modified as necessary to make it so.
//
//               This is primarily useful as a simple hack to allow
//               p3d applications to be run directly from the command
//               line on Unix-like systems.
//
//               The return value is true if successful, or false on
//               failure (for instance, because the header prefix
//               violates the above rules).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3090  13 header_prefix 1 2880  
1237 14 Dtool_vDgfy_G9 0 6 1230 2880 0 14 Dtool_vDgfy_G9 345 ////////////////////////////////////////////////////////////////////
//     Function: Multifile::get_header_prefix
//       Access: Published
//  Description: Returns the string that preceded the Multifile header
//               on the file, if any.  See set_header_prefix().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3091  
1238 14 Dtool_vDgfxaR_ 0 7 1232 3100 2599 14 Dtool_vDgfxaR_ 221 ////////////////////////////////////////////////////////////////////
//     Function: Namable::Copy Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3098  
1239 14 Dtool_vDgfZXC2 0 7 1232 3100 2599 14 Dtool_vDgfZXC2 699 // Filename: namable.I
// Created by:  drose (16Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Namable::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 12 initial_name 1 2880  
1240 14 Dtool_vDgfAFnx 0 7 1232 3100 2599 14 Dtool_vDgfAFnx 699 // Filename: namable.I
// Created by:  drose (16Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Namable::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1241 14 Dtool_vDgfp1bI 0 6 1233 3100 0 14 Dtool_vDgfp1bI 229 ////////////////////////////////////////////////////////////////////
//     Function: Namable::Copy Assignment Operator
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3100  5 other 1 3098  
1242 14 Dtool_vDgfLNBW 0 4 1234 2882 0 14 Dtool_vDgfLNBW 213 ////////////////////////////////////////////////////////////////////
//     Function: Namable::set_name
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3100  4 name 1 2880  
1243 14 Dtool_vDgfZvUl 0 4 1235 2882 0 14 Dtool_vDgfZvUl 251 ////////////////////////////////////////////////////////////////////
//     Function: Namable::clear_name
//       Access: Public
//  Description: Resets the Namable's name to empty.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3100  
1244 14 Dtool_vDgfYjhC 0 6 1236 2884 0 14 Dtool_vDgfYjhC 311 ////////////////////////////////////////////////////////////////////
//     Function: Namable::has_name
//       Access: Public
//  Description: Returns true if the Namable has a nonempty name set,
//               false if the name is empty.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3098  
1245 14 Dtool_vDgffARN 0 6 1237 2880 0 14 Dtool_vDgffARN 213 ////////////////////////////////////////////////////////////////////
//     Function: Namable::get_name
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3098  
1246 14 Dtool_vDgfoz7q 0 4 1238 2882 0 14 Dtool_vDgfoz7q 380 ////////////////////////////////////////////////////////////////////
//     Function: Namable::output
//       Access: Public
//  Description: Outputs the Namable.  This function simply writes the
//               name to the output stream; most Namable derivatives
//               will probably redefine this.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3098  3 out 1 2887  
1247 14 Dtool_vDgf_mnx 0 7 1239 2994 2262 14 Dtool_vDgf_mnx 0 0 
1248 14 Dtool_vDgferJg 0 7 1242 3065 2608 14 Dtool_vDgferJg 719 // Filename: subfileInfo.I
// Created by:  drose (20Jun11)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Default Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
1249 14 Dtool_vDgf_S_L 0 7 1242 3065 2608 14 Dtool_vDgf_S_L 224 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 file 1 3069  5 start 1 2883  4 size 1 2883  
1250 14 Dtool_vDgfj9IG 0 7 1242 3065 2608 14 Dtool_vDgfj9IG 224 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 3 8 filename 1 2910  5 start 1 2883  4 size 1 2883  
1251 14 Dtool_vDgfT649 0 7 1242 3065 2608 14 Dtool_vDgfT649 229 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Copy Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 copy 1 3075  
1252 14 Dtool_vDgfMYXI 0 6 1243 3065 0 14 Dtool_vDgfMYXI 237 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::Copy Assignment Operator
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3065  4 copy 1 3075  
1253 14 Dtool_vDgfux5H 0 6 1244 2884 0 14 Dtool_vDgfux5H 322 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::is_empty
//       Access: Published
//  Description: Returns true if this SubfileInfo doesn't define any
//               file, false if it has real data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3075  
1254 14 Dtool_vDgfJUCK 0 7 1245 3069 0 14 Dtool_vDgfJUCK 273 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::get_file
//       Access: Published
//  Description: Returns the FileReference that represents this file.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3075  
1255 14 Dtool_vDgfq_fB 0 6 1246 2910 0 14 Dtool_vDgfq_fB 252 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::get_filename
//       Access: Published
//  Description: A shortcut to the filename.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3075  
1256 14 Dtool_vDgfNtTU 0 6 1247 2883 0 14 Dtool_vDgfNtTU 305 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::get_start
//       Access: Published
//  Description: Returns the offset within the file at which this file
//               data begins.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3075  
1257 14 Dtool_vDgf56A5 0 6 1248 2883 0 14 Dtool_vDgf56A5 339 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::get_size
//       Access: Published
//  Description: Returns the number of consecutive bytes, beginning at
//               get_start(), that correspond to this file data.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3075  
1258 14 Dtool_vDgfKhmt 0 4 1249 2882 0 14 Dtool_vDgfKhmt 219 ////////////////////////////////////////////////////////////////////
//     Function: SubfileInfo::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3075  3 out 1 2887  
1259 14 Dtool_vDgfWaEw 0 6 1252 3103 0 14 Dtool_vDgfWaEw 0 1 4 this 3 3101  
1260 14 Dtool_vDgf7aYo 0 7 1253 2916 1841 14 Dtool_vDgf7aYo 0 1 4 this 3 3101  
1261 14 Dtool_vDgfI9XN 0 6 1254 2910 0 14 Dtool_vDgfI9XN 418 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_original_filename
//       Access: Published
//  Description: Returns the original filename as it was used to
//               locate this VirtualFile.  This is usually, but not
//               always, the same string returned by get_filename().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1262 14 Dtool_vDgfnxR0 0 6 1255 2884 0 14 Dtool_vDgfnxR0 280 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::has_file
//       Access: Published, Virtual
//  Description: Returns true if this file exists, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1263 14 Dtool_vDgf3gtu 0 6 1256 2884 0 14 Dtool_vDgf3gtu 354 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::is_directory
//       Access: Published, Virtual
//  Description: Returns true if this file represents a directory (and
//               scan_directory() may be called), false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1264 14 Dtool_vDgfxCeS 0 6 1257 2884 0 14 Dtool_vDgfxCeS 355 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::is_regular_file
//       Access: Published, Virtual
//  Description: Returns true if this file represents a regular file
//               (and read_file() may be called), false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1265 14 Dtool_vDgfX8_m 0 6 1258 2884 0 14 Dtool_vDgfX8_m 406 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::is_writable
//       Access: Published, Virtual
//  Description: Returns true if this file may be written to, which
//               implies write_file() may be called (unless it is a
//               directory instead of a regular file).
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1266 14 Dtool_vDgf_CJj 0 6 1259 2884 0 14 Dtool_vDgf_CJj 454 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::delete_file
//       Access: Public
//  Description: Attempts to delete this file or directory.  This can
//               remove a single file or an empty directory.  It will
//               not remove a nonempty directory.  Returns true on
//               success, false on failure.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070  
1267 14 Dtool_vDgf1oD6 0 6 1260 2884 0 14 Dtool_vDgf1oD6 964 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::rename_file
//       Access: Public
//  Description: Attempts to move or rename this file or directory.
//               If the original file is an ordinary file, it will
//               quietly replace any already-existing file in the new
//               filename (but not a directory).  If the original file
//               is a directory, the new filename must not already
//               exist.
//
//               If the file is a directory, the new filename must be
//               within the same mount point.  If the file is an
//               ordinary file, the new filename may be anywhere; but
//               if it is not within the same mount point then the
//               rename operation is automatically performed as a
//               two-step copy-and-delete operation.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070  8 new_file 1 3070  
1268 14 Dtool_vDgfhF17 0 6 1261 2884 0 14 Dtool_vDgfhF17 362 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::copy_file
//       Access: Public
//  Description: Attempts to copy the contents of this file to the
//               indicated file.  Returns true on success, false on
//               failure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070  8 new_file 1 3070  
1269 14 Dtool_vDgf4egf 0 7 1262 3104 2321 14 Dtool_vDgf4egf 522 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::scan_directory
//       Access: Published
//  Description: If the file represents a directory (that is,
//               is_directory() returns true), this returns the list
//               of files within the directory at the current time.
//               Returns NULL if the file is not a directory or if the
//               directory cannot be read.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1270 14 Dtool_vDgfJKgU 0 4 1263 2882 0 14 Dtool_vDgfJKgU 219 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::output
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3101  3 out 1 2887  
1271 14 Dtool_vDgfkWDV 0 4 1264 2882 0 14 Dtool_vDgfkWDV 287 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::ls
//       Access: Published
//  Description: If the file represents a directory, lists its
//               contents.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3101  3 out 1 2887  
1272 14 Dtool_vDgf42an 0 4 1264 2882 0 14 Dtool_vDgf42an 287 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::ls
//       Access: Published
//  Description: If the file represents a directory, lists its
//               contents.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1273 14 Dtool_vDgflJmn 0 4 1265 2882 0 14 Dtool_vDgflJmn 335 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::ls_all
//       Access: Published
//  Description: If the file represents a directory, recursively lists
//               its contents and those of all subdirectories.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3101  3 out 1 2887  
1274 14 Dtool_vDgf_9x0 0 4 1265 2882 0 14 Dtool_vDgf_9x0 335 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::ls_all
//       Access: Published
//  Description: If the file represents a directory, recursively lists
//               its contents and those of all subdirectories.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1275 14 Dtool_vDgf6zyQ 0 6 1266 2880 0 14 Dtool_vDgf6zyQ 271 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::read_file
//       Access: Public
//  Description: Returns the entire contents of the file as a string.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3101  11 auto_unwrap 1 2884  
1276 14 Dtool_vDgf_qft 0 6 1267 2890 0 14 Dtool_vDgf_qft 449 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_read_file
//       Access: Published, Virtual
//  Description: Opens the file for reading.  Returns a newly
//               allocated istream on success (which you should
//               eventually delete when you are done reading).
//               Returns NULL on failure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3101  11 auto_unwrap 1 2884  
1277 14 Dtool_vDgfUTlQ 0 4 1268 2882 0 14 Dtool_vDgfUTlQ 519 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::close_read_file
//       Access: Published
//  Description: Closes a file opened by a previous call to
//               open_read_file().  This really just deletes the
//               istream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3101  6 stream 1 2890  
1278 14 Dtool_vDgfV5c7 0 6 1269 2884 0 14 Dtool_vDgfV5c7 627 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::was_read_successful
//       Access: Published, Virtual
//  Description: Call this method after a reading the istream returned
//               by open_read_file() to completion.  If it returns
//               true, the file was read completely and without error;
//               if it returns false, there may have been some errors
//               or a truncated file read.  This is particularly
//               likely if the stream is a VirtualFileHTTP.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1279 14 Dtool_vDgfvzg6 0 6 1270 2884 0 14 Dtool_vDgfvzg6 307 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::write_file
//       Access: Public
//  Description: Writes the entire contents of the file as a string,
//               if it is writable.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3070  4 data 1 2880  9 auto_wrap 1 2884  
1280 14 Dtool_vDgfyDaf 0 6 1271 2887 0 14 Dtool_vDgfyDaf 450 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_write_file
//       Access: Published, Virtual
//  Description: Opens the file for writing.  Returns a newly
//               allocated ostream on success (which you should
//               eventually delete when you are done writing).
//               Returns NULL on failure.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3070  9 auto_wrap 1 2884  8 truncate 1 2884  
1281 14 Dtool_vDgflE09 0 6 1272 2887 0 14 Dtool_vDgflE09 452 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_append_file
//       Access: Published, Virtual
//  Description: Works like open_write_file(), but the file is opened
//               in append mode.  Like open_write_file, the returned
//               pointer should eventually be passed to
//               close_write_file().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070  
1282 14 Dtool_vDgfoKOa 0 4 1273 2882 0 14 Dtool_vDgfoKOa 521 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::close_write_file
//       Access: Published
//  Description: Closes a file opened by a previous call to
//               open_write_file().  This really just deletes the
//               ostream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070  6 stream 1 2887  
1283 14 Dtool_vDgfTboW 0 6 1274 2981 0 14 Dtool_vDgfTboW 456 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_read_write_file
//       Access: Published, Virtual
//  Description: Opens the file for writing.  Returns a newly
//               allocated iostream on success (which you should
//               eventually delete when you are done writing).
//               Returns NULL on failure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070  8 truncate 1 2884  
1284 14 Dtool_vDgfKKhZ 0 6 1275 2981 0 14 Dtool_vDgfKKhZ 472 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::open_read_append_file
//       Access: Published, Virtual
//  Description: Works like open_read_write_file(), but the file is opened
//               in append mode.  Like open_read_write_file, the returned
//               pointer should eventually be passed to
//               close_read_write_file().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3070  
1285 14 Dtool_vDgfTlOW 0 4 1276 2882 0 14 Dtool_vDgfTlOW 532 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::close_read_write_file
//       Access: Published
//  Description: Closes a file opened by a previous call to
//               open_read_write_file().  This really just deletes the
//               iostream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070  6 stream 1 2981  
1286 14 Dtool_vDgfVVtH 0 6 1277 2883 0 14 Dtool_vDgfVVtH 343 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_file_size
//       Access: Published, Virtual
//  Description: Returns the current size on disk (or wherever it is)
//               of the file before it has been opened.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1287 14 Dtool_vDgfklGA 0 6 1277 2883 0 14 Dtool_vDgfklGA 508 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_file_size
//       Access: Published, Virtual
//  Description: Returns the current size on disk (or wherever it is)
//               of the already-open file.  Pass in the stream that
//               was returned by open_read_file(); some
//               implementations may require this stream to determine
//               the size.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3101  6 stream 1 2890  
1288 14 Dtool_vDgfW49E 0 6 1278 2914 0 14 Dtool_vDgfW49E 776 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_timestamp
//       Access: Published, Virtual
//  Description: Returns a time_t value that represents the time the
//               file was last modified, to within whatever precision
//               the operating system records this information (on a
//               Windows95 system, for instance, this may only be
//               accurate to within 2 seconds).
//
//               If the timestamp cannot be determined, either because
//               it is not supported by the operating system or
//               because there is some error (such as file not found),
//               returns 0.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3101  
1289 14 Dtool_vDgfSNOa 0 6 1279 2884 0 14 Dtool_vDgfSNOa 629 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFile::get_system_info
//       Access: Published, Virtual
//  Description: Populates the SubfileInfo structure with the data
//               representing where the file actually resides on disk,
//               if this is knowable.  Returns true if the file might
//               reside on disk, and the info is populated, or false
//               if it does not (or it is not known where the file
//               resides), in which case the info is meaningless.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3070  4 info 1 3065  
1290 14 Dtool_vDgf1f88 0 7 1280 2994 2262 14 Dtool_vDgf1f88 0 0 
1291 14 Dtool_vDgfghyY 0 7 1283 2994 2262 14 Dtool_vDgfghyY 0 0 
1292 14 Dtool_vDgfbFir 0 6 1286 3103 0 14 Dtool_vDgfbFir 304 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::get_file_system
//       Access: Public
//  Description: Returns the file system this mount object is attached
//               to.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3105  
1293 14 Dtool_vDgfIF_a 0 6 1287 2910 0 14 Dtool_vDgfIF_a 410 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::get_mount_point
//       Access: Public
//  Description: Returns the name of the directory within the virtual
//               file system that this mount object is attached to.
//               This directory name will end with a slash.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3105  
1294 14 Dtool_vDgft09F 0 6 1288 2883 0 14 Dtool_vDgft09F 333 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::get_mount_flags
//       Access: Public
//  Description: Returns the set of flags passed by the user to the
//               VirtualFileSystem::mount() command.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3105  
1295 14 Dtool_vDgfIEZ0 0 4 1289 2882 0 14 Dtool_vDgfIEZ0 230 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::output
//       Access: Public, Virtual
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3105  3 out 1 2887  
1296 14 Dtool_vDgfh28O 0 4 1290 2882 0 14 Dtool_vDgfh28O 229 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMount::write
//       Access: Public, Virtual
//  Description: 
//////////////////////////////////////////////////////////////////// 2 4 this 3 3105  3 out 1 2887  
1297 14 Dtool_vDgf2sRF 0 7 1291 2994 2262 14 Dtool_vDgf2sRF 0 0 
1298 14 Dtool_vDgfMpBt 0 7 1293 3107 2459 14 Dtool_vDgfMpBt 736 // Filename: virtualFileMountMultifile.I
// Created by:  drose (03Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountMultifile::Constructor
//       Access: Public
//  Description: 
//////////////////////////////////////////////////////////////////// 1 9 multifile 1 3090  
1299 14 Dtool_vDgf6pdK 0 7 1294 3090 2321 14 Dtool_vDgf6pdK 319 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountMultifile::get_multifile
//       Access: Public
//  Description: Returns the Multifile pointer that this mount object
//               is based on.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3108  
1300 14 Dtool_vDgfYZWf 0 7 1295 2994 2262 14 Dtool_vDgfYZWf 0 0 
1301 14 Dtool_vDgf05_P 0 7 1297 3110 2652 14 Dtool_vDgf05_P 233 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountRamdisk::Constructor
//       Access: Public
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
1302 14 Dtool_vDgfulF7 0 7 1298 2994 2262 14 Dtool_vDgfulF7 0 0 
1303 14 Dtool_vDgfRiai 0 7 1301 3111 2656 14 Dtool_vDgfRiai 730 // Filename: virtualFileMountSystem.I
// Created by:  drose (03Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountSystem::Constructor
//       Access: Public
//  Description: 
//////////////////////////////////////////////////////////////////// 1 17 physical_filename 1 2910  
1304 14 Dtool_vDgfZtvx 0 6 1302 2910 0 14 Dtool_vDgfZtvx 357 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileMountSystem::get_physical_filename
//       Access: Public
//  Description: Returns the name of the source file on the OS
//               filesystem of the directory or file that is mounted.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3112  
1305 14 Dtool_vDgft_Ma 0 7 1303 2994 2262 14 Dtool_vDgft_Ma 0 0 
1306 14 Dtool_vDgf3NWF 0 7 1306 3116 2459 14 Dtool_vDgf3NWF 312 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSimple::get_mount
//       Access: Published, Virtual
//  Description: Returns the VirtualFileMount this file is associated
//               with.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3114  
1307 14 Dtool_vDgfdtR9 0 6 1307 2884 0 14 Dtool_vDgfdtR9 429 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSimple::is_implicit_pz_file
//       Access: Published
//  Description: Returns true if this file is a .pz file that should
//               be implicitly decompressed on load, or false if it is
//               not a .pz file or if it should not be decompressed.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3114  
1308 14 Dtool_vDgftrqK 0 7 1308 2994 2262 14 Dtool_vDgftrqK 0 0 
1309 14 Dtool_vDgf2bu_ 0 7 1311 3117 2463 14 Dtool_vDgf2bu_ 714 // Filename: temporaryFile.I
// Created by:  drose (23Jun11)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: TemporaryFile::Constructor
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 8 filename 1 2910  
1310 14 Dtool_vDgfENOi 0 7 1312 2994 2262 14 Dtool_vDgfENOi 0 0 
1311 14 Dtool_vDgfQ7NE 0 7 1314 3118 2666 14 Dtool_vDgfQ7NE 709 // Filename: zStream.I
// Created by:  drose (05Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: IDecompressStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1312 14 Dtool_vDgfk44L 0 7 1314 3118 2666 14 Dtool_vDgfk44L 226 ////////////////////////////////////////////////////////////////////
//     Function: IDecompressStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 6 source 1 2890  11 owns_source 1 2884  
1313 14 Dtool_vDgf1V_W 0 6 1315 3118 0 14 Dtool_vDgf1V_W 220 ////////////////////////////////////////////////////////////////////
//     Function: IDecompressStream::open
//       Access: Public
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 this 3 3118  6 source 1 2890  11 owns_source 1 2884  
1314 14 Dtool_vDgf6Q7g 0 6 1316 3118 0 14 Dtool_vDgf6Q7g 342 ////////////////////////////////////////////////////////////////////
//     Function: IDecompressStream::close
//       Access: Public
//  Description: Resets the ZStream to empty, but does not actually
//               close the source istream unless owns_source was true.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3118  
1315 14 Dtool_vDgf50F0 0 7 1319 3119 2670 14 Dtool_vDgf50F0 224 ////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1316 14 Dtool_vDgf1V5H 0 7 1319 3119 2670 14 Dtool_vDgf1V5H 224 ////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 3 4 dest 1 2887  9 owns_dest 1 2884  17 compression_level 1 2883  
1317 14 Dtool_vDgfrO__ 0 7 1319 3119 2670 14 Dtool_vDgfrO__ 224 ////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::Constructor
//       Access: Public
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 dest 1 2887  9 owns_dest 1 2884  
1318 14 Dtool_vDgfas20 0 6 1320 3119 0 14 Dtool_vDgfas20 218 ////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::open
//       Access: Public
//  Description: 
//////////////////////////////////////////////////////////////////// 4 4 this 3 3119  4 dest 1 2887  9 owns_dest 1 2884  17 compression_level 1 2883  
1319 14 Dtool_vDgfWCyY 0 6 1320 3119 0 14 Dtool_vDgfWCyY 218 ////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::open
//       Access: Public
//  Description: 
//////////////////////////////////////////////////////////////////// 3 4 this 3 3119  4 dest 1 2887  9 owns_dest 1 2884  
1320 14 Dtool_vDgfDmax 0 6 1321 3119 0 14 Dtool_vDgfDmax 336 ////////////////////////////////////////////////////////////////////
//     Function: OCompressStream::close
//       Access: Public
//  Description: Resets the ZStream to empty, but does not actually
//               close the dest ostream unless owns_dest was true.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3119  
1321 14 Dtool_vDgfqGsI 0 6 1324 2883 0 14 Dtool_vDgfqGsI 270 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::get_num_files
//       Access: Published
//  Description: Returns the number of files in the list.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3120  
1322 14 Dtool_vDgf2Wno 0 7 1325 3070 2638 14 Dtool_vDgf2Wno 258 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::get_file
//       Access: Published
//  Description: Returns the nth file in the list.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3120  1 n 1 2883  
1323 14 Dtool_vDgfMjkC 0 7 1326 3070 2638 14 Dtool_vDgfMjkC 261 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::operator []
//       Access: Published
//  Description: Returns the nth file in the list.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3120  1 n 1 2883  
1324 14 Dtool_vDgfmtmf 0 6 1327 2883 0 14 Dtool_vDgfmtmf 261 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::size
//       Access: Published
//  Description: Returns the number of files in the list.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3120  
1325 14 Dtool_vDgfn06M 0 7 1328 3104 2321 14 Dtool_vDgfn06M 276 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::operator +=
//       Access: Published
//  Description: Appends the other list onto the end of this one.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3104  5 other 1 3120  
1326 14 Dtool_vDgfwdLO 0 7 1329 3104 2321 14 Dtool_vDgfwdLO 318 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileList::operator +
//       Access: Published
//  Description: Returns a VirtualFileList representing the
//               concatenation of the two lists.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3120  5 other 1 3120  
1327 14 Dtool_vDgfEd6o 0 7 1331 3103 2678 14 Dtool_vDgfEd6o 230 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::Constructor
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 0 
1328 14 Dtool_vDgfJfYT 0 6 1334 2884 0 14 Dtool_vDgfJfYT 1505 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount
//       Access: Published
//  Description: Mounts the indicated system file or directory at the
//               given mount point.  If the named file is a directory,
//               mounts the directory.  If the named file is a
//               Multifile, mounts it as a Multifile.  Returns true on
//               success, false on failure.
//
//               A given system directory may be mounted to multiple
//               different mount point, and the same mount point may
//               share multiple system directories.  In the case of
//               ambiguities (that is, two different files with
//               exactly the same full pathname), the most-recently
//               mounted system wins.
//
//               The filename specified as the first parameter must
//               refer to a real, physical filename on disk; it cannot
//               be a virtual file already appearing within the vfs
//               filespace.  However, it is possible to mount such a
//               file; see mount_loop() for this.
////
//               Note that a mounted VirtualFileSystem directory is
//               fully case-sensitive, unlike the native Windows file
//               system, so you must refer to files within the virtual
//               file system with exactly the right case.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3103  17 physical_filename 1 2910  11 mount_point 1 2910  5 flags 1 2883  8 password 1 2880  
1329 14 Dtool_vDgf_Equ 0 6 1334 2884 0 14 Dtool_vDgf_Equ 1505 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount
//       Access: Published
//  Description: Mounts the indicated system file or directory at the
//               given mount point.  If the named file is a directory,
//               mounts the directory.  If the named file is a
//               Multifile, mounts it as a Multifile.  Returns true on
//               success, false on failure.
//
//               A given system directory may be mounted to multiple
//               different mount point, and the same mount point may
//               share multiple system directories.  In the case of
//               ambiguities (that is, two different files with
//               exactly the same full pathname), the most-recently
//               mounted system wins.
//
//               The filename specified as the first parameter must
//               refer to a real, physical filename on disk; it cannot
//               be a virtual file already appearing within the vfs
//               filespace.  However, it is possible to mount such a
//               file; see mount_loop() for this.
////
//               Note that a mounted VirtualFileSystem directory is
//               fully case-sensitive, unlike the native Windows file
//               system, so you must refer to files within the virtual
//               file system with exactly the right case.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3103  17 physical_filename 1 2910  11 mount_point 1 2910  5 flags 1 2883  
1330 14 Dtool_vDgf29yD 0 6 1334 2884 0 14 Dtool_vDgf29yD 297 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount
//       Access: Published
//  Description: Mounts the indicated Multifile at the given mount
//               point.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3103  9 multifile 1 3090  11 mount_point 1 2910  5 flags 1 2883  
1331 14 Dtool_vDgfsUDo 0 6 1334 2884 0 14 Dtool_vDgfsUDo 465 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount
//       Access: Published
//  Description: Adds the given VirtualFileMount object to the mount
//               list.  This is a lower-level function that the other
//               flavors of mount(); it requires you to create a
//               VirtualFileMount object specifically.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3103  5 mount 1 3116  11 mount_point 1 2910  5 flags 1 2883  
1332 14 Dtool_vDgfrLXA 0 6 1335 2884 0 14 Dtool_vDgfrLXA 971 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount_loop
//       Access: Published
//  Description: This is similar to mount(), but it receives the name
//               of a Multifile that already appears within the
//               virtual file system.  It can be used to mount a
//               Multifile that is itself hosted within a
//               virtually-mounted Multifile.
//
//               This interface can also be used to mount physical
//               files (that appear within the virtual filespace), but
//               it cannot be used to mount directories.  Use mount()
//               if you need to mount a directory.
//
//               Note that there is additional overhead, in the form
//               of additional buffer copies of the data, for
//               recursively mounting a multifile like this.
//////////////////////////////////////////////////////////////////// 5 4 this 3 3103  16 virtual_filename 1 2910  11 mount_point 1 2910  5 flags 1 2883  8 password 1 2880  
1333 14 Dtool_vDgfSS42 0 6 1335 2884 0 14 Dtool_vDgfSS42 971 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::mount_loop
//       Access: Published
//  Description: This is similar to mount(), but it receives the name
//               of a Multifile that already appears within the
//               virtual file system.  It can be used to mount a
//               Multifile that is itself hosted within a
//               virtually-mounted Multifile.
//
//               This interface can also be used to mount physical
//               files (that appear within the virtual filespace), but
//               it cannot be used to mount directories.  Use mount()
//               if you need to mount a directory.
//
//               Note that there is additional overhead, in the form
//               of additional buffer copies of the data, for
//               recursively mounting a multifile like this.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3103  16 virtual_filename 1 2910  11 mount_point 1 2910  5 flags 1 2883  
1334 14 Dtool_vDgf_kpP 0 6 1336 2883 0 14 Dtool_vDgf_kpP 402 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount
//       Access: Published
//  Description: Unmounts all appearances of the indicated directory
//               name or multifile name from the file system.  Returns
//               the number of appearances unmounted.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  17 physical_filename 1 2910  
1335 14 Dtool_vDgfy9Qn 0 6 1336 2883 0 14 Dtool_vDgfy9Qn 379 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount
//       Access: Published
//  Description: Unmounts all appearances of the indicated Multifile
//               from the file system.  Returns the number of
//               appearances unmounted.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  9 multifile 1 3090  
1336 14 Dtool_vDgf_fue 0 6 1336 2883 0 14 Dtool_vDgf_fue 374 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount
//       Access: Published
//  Description: Unmounts the indicated VirtualFileMount object
//               from the file system.  Returns the number of
//               appearances unmounted.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  5 mount 1 3116  
1337 14 Dtool_vDgfxowA 0 6 1337 2883 0 14 Dtool_vDgfxowA 388 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount_point
//       Access: Published
//  Description: Unmounts all systems attached to the given mount
//               point from the file system.  Returns the number of
//               appearances unmounted.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  11 mount_point 1 2910  
1338 14 Dtool_vDgfatSe 0 6 1338 2883 0 14 Dtool_vDgfatSe 329 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::unmount_all
//       Access: Published
//  Description: Unmounts all files from the file system.  Returns the
//               number of systems unmounted.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3103  
1339 14 Dtool_vDgf0cQ0 0 6 1339 2883 0 14 Dtool_vDgf0cQ0 304 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_num_mounts
//       Access: Published
//  Description: Returns the number of individual mounts in the
//               system.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3122  
1340 14 Dtool_vDgfZfqm 0 7 1340 3116 2459 14 Dtool_vDgfZfqm 264 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_mount
//       Access: Published
//  Description: Returns the nth mount in the system.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  1 n 1 2883  
1341 14 Dtool_vDgfvcex 0 6 1341 2884 0 14 Dtool_vDgfvcex 429 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::chdir
//       Access: Published
//  Description: Changes the current directory.  This is used to
//               resolve relative pathnames in get_file() and/or
//               find_file().  Returns true if successful, false
//               otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  13 new_directory 1 2910  
1342 14 Dtool_vDgfDRrG 0 7 1342 2916 1841 14 Dtool_vDgfDRrG 275 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_cwd
//       Access: Published
//  Description: Returns the current directory name.  See chdir().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3122  
1343 14 Dtool_vDgf73Nf 0 6 1343 2884 0 14 Dtool_vDgf73Nf 544 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::make_directory
//       Access: Published
//  Description: Attempts to create a directory within the file
//               system.  Returns true on success, false on failure
//               (for instance, because the parent directory does not
//               exist, or is read-only).  If the directory already
//               existed prior to this call, returns true.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  8 filename 1 2910  
1344 14 Dtool_vDgf35Oa 0 6 1344 2884 0 14 Dtool_vDgf35Oa 424 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::make_directory_full
//       Access: Published
//  Description: Attempts to create a directory within the file
//               system.  Will also create any intervening directories
//               needed.  Returns true on success, false on failure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  8 filename 1 2910  
1345 14 Dtool_vDgfwdJ4 0 7 1345 3070 2638 14 Dtool_vDgfwdJ4 902 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_file
//       Access: Published
//  Description: Looks up the file by the indicated name in the file
//               system.  Returns a VirtualFile pointer representing
//               the file if it is found, or NULL if it is not.
//
//               If status_only is true, the file will be checked for
//               existence and length and so on, but the returned
//               file's contents cannot be read.  This is an
//               optimization which is especially important for
//               certain mount types, for instance HTTP, for which
//               opening a file to determine its status is
//               substantially less expensive than opening it to read
//               its contents.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3122  8 filename 1 2910  11 status_only 1 2884  
1346 14 Dtool_vDgfy3zk 0 7 1345 3070 2638 14 Dtool_vDgfy3zk 902 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_file
//       Access: Published
//  Description: Looks up the file by the indicated name in the file
//               system.  Returns a VirtualFile pointer representing
//               the file if it is found, or NULL if it is not.
//
//               If status_only is true, the file will be checked for
//               existence and length and so on, but the returned
//               file's contents cannot be read.  This is an
//               optimization which is especially important for
//               certain mount types, for instance HTTP, for which
//               opening a file to determine its status is
//               substantially less expensive than opening it to read
//               its contents.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  8 filename 1 2910  
1347 14 Dtool_vDgfdOK1 0 7 1346 3070 2638 14 Dtool_vDgfdOK1 592 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::create_file
//       Access: Published
//  Description: Attempts to create a file by the indicated name in
//               the filesystem, if possible, and returns it.  If a
//               file by this name already exists, returns the same
//               thing as get_file().  If the filename is located
//               within a read-only directory, or the directory
//               doesn't exist, returns NULL.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  8 filename 1 2910  
1348 14 Dtool_vDgfk2oc 0 7 1347 3070 2638 14 Dtool_vDgfk2oc 436 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::find_file
//       Access: Published
//  Description: Uses the indicated search path to find the file
//               within the file system.  Returns the first occurrence
//               of the file found, or NULL if the file cannot be
//               found.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3122  8 filename 1 2910  10 searchpath 1 2929  11 status_only 1 2884  
1349 14 Dtool_vDgf9oz3 0 7 1347 3070 2638 14 Dtool_vDgf9oz3 436 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::find_file
//       Access: Published
//  Description: Uses the indicated search path to find the file
//               within the file system.  Returns the first occurrence
//               of the file found, or NULL if the file cannot be
//               found.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3122  8 filename 1 2910  10 searchpath 1 2929  
1350 14 Dtool_vDgf5BU3 0 6 1348 2884 0 14 Dtool_vDgf5BU3 467 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::delete_file
//       Access: Public
//  Description: Attempts to delete the indicated file or directory.
//               This can remove a single file or an empty directory.
//               It will not remove a nonempty directory.  Returns
//               true on success, false on failure.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  8 filename 1 2910  
1351 14 Dtool_vDgfhfh_ 0 6 1349 2884 0 14 Dtool_vDgfhfh_ 980 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::rename_file
//       Access: Public
//  Description: Attempts to move or rename the indicated file or
//               directory.  If the original file is an ordinary file,
//               it will quietly replace any already-existing file in
//               the new filename (but not a directory).  If the
//               original file is a directory, the new filename must
//               not already exist.
//
//               If the file is a directory, the new filename must be
//               within the same mount point.  If the file is an
//               ordinary file, the new filename may be anywhere; but
//               if it is not within the same mount point then the
//               rename operation is automatically performed as a
//               two-step copy-and-delete operation.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3103  13 orig_filename 1 2910  12 new_filename 1 2910  
1352 14 Dtool_vDgfF2rp 0 6 1350 2884 0 14 Dtool_vDgfF2rp 377 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::copy_file
//       Access: Public
//  Description: Attempts to copy the contents of the indicated file
//               to the indicated file.  Returns true on success,
//               false on failure.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3103  13 orig_filename 1 2910  12 new_filename 1 2910  
1353 14 Dtool_vDgfgtIn 0 6 1351 2884 0 14 Dtool_vDgfgtIn 440 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::resolve_filename
//       Access: Public
//  Description: Searches the given search path for the filename.  If
//               it is found, updates the filename to the full
//               pathname found and returns true; otherwise, returns
//               false.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3122  8 filename 1 2916  10 searchpath 1 2929  17 default_extension 1 2880  
1354 14 Dtool_vDgfqRwJ 0 6 1351 2884 0 14 Dtool_vDgfqRwJ 440 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::resolve_filename
//       Access: Public
//  Description: Searches the given search path for the filename.  If
//               it is found, updates the filename to the full
//               pathname found and returns true; otherwise, returns
//               false.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3122  8 filename 1 2916  10 searchpath 1 2929  
1355 14 Dtool_vDgfvy79 0 6 1352 2883 0 14 Dtool_vDgfvy79 672 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::find_all_files
//       Access: Public
//  Description: Searches all the directories in the search list for
//               the indicated file, in order.  Fills up the results
//               list with *all* of the matching filenames found, if
//               any.  Returns the number of matches found.
//
//               It is the responsibility of the the caller to clear
//               the results list first; otherwise, the newly-found
//               files will be appended to the list.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3122  8 filename 1 2910  10 searchpath 1 2929  7 results 1 2934  
1356 14 Dtool_vDgfFDjI 0 6 1353 2884 0 14 Dtool_vDgfFDjI 795 // Filename: virtualFileSystem.I
// Created by:  drose (03Aug02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::exists
//       Access: Published
//  Description: Convenience function; returns true if the named file
//               exists.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  8 filename 1 2910  
1357 14 Dtool_vDgfpcNJ 0 6 1354 2884 0 14 Dtool_vDgfpcNJ 327 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::is_directory
//       Access: Published
//  Description: Convenience function; returns true if the named file
//               exists and is a directory.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  8 filename 1 2910  
1358 14 Dtool_vDgfkO_z 0 6 1355 2884 0 14 Dtool_vDgfkO_z 333 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::is_regular_file
//       Access: Published
//  Description: Convenience function; returns true if the named file
//               exists and is a regular file.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  8 filename 1 2910  
1359 14 Dtool_vDgfHp2g 0 7 1356 3104 2321 14 Dtool_vDgfHp2g 528 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::scan_directory
//       Access: Published
//  Description: If the file represents a directory (that is,
//               is_directory() returns true), this returns the list
//               of files within the directory at the current time.
//               Returns NULL if the file is not a directory or if the
//               directory cannot be read.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  8 filename 1 2910  
1360 14 Dtool_vDgf1Olg 0 4 1357 2882 0 14 Dtool_vDgf1Olg 307 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::ls
//       Access: Published
//  Description: Convenience function; lists the files within the
//               indicated directory.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  8 filename 1 2910  
1361 14 Dtool_vDgf9bcd 0 4 1358 2882 0 14 Dtool_vDgf9bcd 362 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::ls_all
//       Access: Published
//  Description: Convenience function; lists the files within the
//               indicated directory, and all files below,
//               recursively.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  8 filename 1 2910  
1362 14 Dtool_vDgfGxed 0 4 1359 2882 0 14 Dtool_vDgfGxed 303 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::write
//       Access: Published
//  Description: Print debugging information.
//               (e.g. from Python or gdb prompt).
//////////////////////////////////////////////////////////////////// 2 4 this 3 3122  3 out 1 2887  
1363 14 Dtool_vDgf_zcf 0 6 1360 3103 0 14 Dtool_vDgf_zcf 773 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::get_global_ptr
//       Access: Published, Static
//  Description: Returns the default global VirtualFileSystem.  You
//               may create your own personal VirtualFileSystem
//               objects and use them for whatever you like, but Panda
//               will attempt to load models and stuff from this
//               default object.
//
//               Initially, the global VirtualFileSystem is set up to
//               mount the OS filesystem to root; i.e. it is
//               equivalent to the OS filesystem.  This may be
//               subsequently adjusted by the user.
//////////////////////////////////////////////////////////////////// 0 
1364 14 Dtool_vDgfONnn 0 6 1361 2943 0 14 Dtool_vDgfONnn 665 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::read_file
//       Access: Published
//  Description: Convenience function; returns the entire contents of
//               the indicated file as a string.
//
//               If auto_unwrap is true, an explicitly-named .pz file
//               is automatically decompressed and the decompressed
//               contents are returned.  This is different than
//               vfs-implicit-pz, which will automatically decompress
//               a file if the extension .pz is *not* given.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3122  8 filename 1 2910  11 auto_unwrap 1 2884  
1365 14 Dtool_vDgfcxPd 0 6 1362 2890 0 14 Dtool_vDgfcxPd 750 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_read_file
//       Access: Published
//  Description: Convenience function; returns a newly allocated
//               istream if the file exists and can be read, or NULL
//               otherwise.  Does not return an invalid istream.
//
//               If auto_unwrap is true, an explicitly-named .pz file
//               is automatically decompressed and the decompressed
//               contents are returned.  This is different than
//               vfs-implicit-pz, which will automatically decompress
//               a file if the extension .pz is *not* given.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3122  8 filename 1 2910  11 auto_unwrap 1 2884  
1366 14 Dtool_vDgfZbfU 0 4 1363 2882 0 14 Dtool_vDgfZbfU 533 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::close_read_file
//       Access: Published, Static
//  Description: Closes a file opened by a previous call to
//               open_read_file().  This really just deletes the
//               istream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
//////////////////////////////////////////////////////////////////// 1 6 stream 1 2890  
1367 14 Dtool_vDgfQC5_ 0 6 1364 2943 0 14 Dtool_vDgfQC5_ 0 4 4 this 3 3103  8 filename 1 2910  4 data 1 2943  9 auto_wrap 1 2884  
1368 14 Dtool_vDgfyPr8 0 6 1365 2887 0 14 Dtool_vDgfyPr8 658 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_write_file
//       Access: Published
//  Description: Convenience function; returns a newly allocated
//               ostream if the file exists and can be written, or
//               NULL otherwise.  Does not return an invalid ostream.
//
//               If auto_wrap is true, an explicitly-named .pz file is
//               automatically compressed while writing.  If truncate
//               is true, the file is truncated to zero length before
//               writing.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3103  8 filename 1 2910  9 auto_wrap 1 2884  8 truncate 1 2884  
1369 14 Dtool_vDgflsUp 0 6 1366 2887 0 14 Dtool_vDgflsUp 449 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_append_file
//       Access: Published
//  Description: Works like open_write_file(), but the file is opened
//               in append mode.  Like open_write_file, the returned
//               pointer should eventually be passed to
//               close_write_file().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  8 filename 1 2910  
1370 14 Dtool_vDgfZmN6 0 4 1367 2882 0 14 Dtool_vDgfZmN6 535 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::close_write_file
//       Access: Published, Static
//  Description: Closes a file opened by a previous call to
//               open_write_file().  This really just deletes the
//               ostream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
//////////////////////////////////////////////////////////////////// 1 6 stream 1 2887  
1371 14 Dtool_vDgfqBHe 0 6 1368 2981 0 14 Dtool_vDgfqBHe 425 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_read_write_file
//       Access: Published
//  Description: Convenience function; returns a newly allocated
//               iostream if the file exists and can be written, or
//               NULL otherwise.  Does not return an invalid iostream.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3103  8 filename 1 2910  8 truncate 1 2884  
1372 14 Dtool_vDgfHKLj 0 6 1369 2981 0 14 Dtool_vDgfHKLj 469 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::open_read_append_file
//       Access: Published
//  Description: Works like open_read_write_file(), but the file is opened
//               in append mode.  Like open_read_write_file, the returned
//               pointer should eventually be passed to
//               close_read_write_file().
//////////////////////////////////////////////////////////////////// 2 4 this 3 3103  8 filename 1 2910  
1373 14 Dtool_vDgfFfM8 0 4 1370 2882 0 14 Dtool_vDgfFfM8 546 ////////////////////////////////////////////////////////////////////
//     Function: VirtualFileSystem::close_read_write_file
//       Access: Published, Static
//  Description: Closes a file opened by a previous call to
//               open_read_write_file().  This really just deletes the
//               iostream pointer, but it is recommended to use this
//               interface instead of deleting it explicitly, to help
//               work around compiler issues.
//////////////////////////////////////////////////////////////////// 1 6 stream 1 2981  
1374 14 Dtool_vDgfpaeF 0 6 1372 2886 0 14 Dtool_vDgfpaeF 246 ////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_long_time, Win32 implementation
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 this 3 3124  
1375 14 Dtool_vDgfzmNC 0 6 1373 2886 0 14 Dtool_vDgfzmNC 247 ////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_short_time, Win32 implementation
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 this 3 3124  
1376 14 Dtool_vDgfJZRW 0 6 1374 2886 0 14 Dtool_vDgfJZRW 251 ////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_short_raw_time, Win32 implementation
//       Access: Published
//  Description: 
//////////////////////////////////////////////////////////////////// 1 4 this 3 3124  
1377 14 Dtool_vDgfvd5Y 0 6 1375 2883 0 14 Dtool_vDgfvd5Y 675 ////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_error_count
//       Access: Published
//  Description: Returns the number of clock errors that have
//               been detected.  Each time a clock error is detected,
//               in which the value returned by either of the above
//               methods is suspect, the value returned by this method
//               will be incremented.  Applications can monitor this
//               value and react, for instance, by resynchronizing
//               their clocks each time this value changes.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3125  
1378 14 Dtool_vDgfWw9n 0 6 1376 3124 0 14 Dtool_vDgfWw9n 309 ////////////////////////////////////////////////////////////////////
//     Function: TrueClock::get_global_ptr
//       Access: Published, Static
//  Description: Returns a pointer to the one TrueClock object in
//               the world.
//////////////////////////////////////////////////////////////////// 0 
1379 14 Dtool_vDgf6yne 0 6 1377 2884 0 14 Dtool_vDgf6yne 0 2 4 this 3 3125  4 mask 1 2914  
1380 14 Dtool_vDgfYIfo 0 7 1379 3127 2723 14 Dtool_vDgfYIfo 268 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::Constructor
//       Access: Public
//  Description: Create a patch file and initializes internal data
//////////////////////////////////////////////////////////////////// 0 
1381 14 Dtool_vDgfhsa6 0 7 1379 3127 2723 14 Dtool_vDgfhsa6 257 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::Constructor
//       Access: Public
//  Description: Create patch file with buffer to patch
//////////////////////////////////////////////////////////////////// 1 6 buffer 1 3128  
1382 14 Dtool_vDgfH5YG 0 6 1381 2884 0 14 Dtool_vDgfH5YG 680 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::build
//       Access: Public
//  Description:
//               This implementation uses the "greedy differencing
//               algorithm" described in the masters thesis
//               "Differential Compression: A Generalized Solution
//               for Binary Files" by Randal C. Burns (p.13).
//               For an original file of size M and a new file of
//               size N, this algorithm is O(M) in space and
//               O(M*N) (worst-case) in time.
//               return false on error
//////////////////////////////////////////////////////////////////// 4 4 this 3 3127  9 file_orig 1 2916  8 file_new 1 2916  10 patch_name 1 2916  
1383 14 Dtool_vDgfDEDi 0 6 1382 2883 0 14 Dtool_vDgfDEDi 449 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::read_header
//       Access: Published
//  Description: Opens the patch file for reading, and gets the header
//               information from the file but does not begin to do
//               any real work.  This can be used to query the data
//               stored in the patch.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3127  10 patch_file 1 2910  
1384 14 Dtool_vDgfatBi 0 6 1383 2883 0 14 Dtool_vDgfatBi 872 ////////////////////////////////////////////////////////////////////
///// PATCH FILE APPLY MEMBER FUNCTIONS
/////
////////////////////
///// NOTE: this patch-application functionality unfortunately has to be
/////       duplicated in the Installer. It is contained in the file
/////       installerApplyPatch.cxx
/////       PLEASE MAKE SURE THAT THAT FILE GETS UPDATED IF ANY OF THIS
/////       LOGIC CHANGES! (i.e. if the patch file format changes)
////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::initiate
//       Access: Published
//  Description: Set up to apply the patch to the file (original
//               file and patch are destroyed in the process).
//////////////////////////////////////////////////////////////////// 3 4 this 3 3127  10 patch_file 1 2910  4 file 1 2910  
1385 14 Dtool_vDgfYIwX 0 6 1383 2883 0 14 Dtool_vDgfYIwX 366 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::initiate
//       Access: Published
//  Description: Set up to apply the patch to the file.  In this form,
//               neither the original file nor the patch file are
//               destroyed.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3127  10 patch_file 1 2910  9 orig_file 1 2910  11 target_file 1 2910  
1386 14 Dtool_vDgfAkYw 0 6 1384 2883 0 14 Dtool_vDgfAkYw 660 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::run
//       Access: Published
//  Description: Perform one buffer's worth of patching
//               Returns EU_ok while patching
//               Returns EU_success when done
//               If error happens will return one of:
//               EU_error_abort : Patching has not been initiated
//               EU_error_file_invalid : file is corrupted
//               EU_error_invalid_checksum : incompatible patch file
//               EU_error_write_file_rename : could not rename file
//////////////////////////////////////////////////////////////////// 1 4 this 3 3127  
1387 14 Dtool_vDgfrMgQ 0 6 1385 2884 0 14 Dtool_vDgfrMgQ 418 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::apply
//       Access: Public
//  Description: Patches the entire file in one call
//               returns true on success and false on error
//
//               This version will delete the patch file and overwrite
//               the original file.
//////////////////////////////////////////////////////////////////// 3 4 this 3 3127  10 patch_file 1 2916  4 file 1 2916  
1388 14 Dtool_vDgfnczI 0 6 1385 2884 0 14 Dtool_vDgfnczI 368 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::apply
//       Access: Public
//  Description: Patches the entire file in one call
//               returns true on success and false on error
//
//               This version will not delete any files.
//////////////////////////////////////////////////////////////////// 4 4 this 3 3127  10 patch_file 1 2916  9 orig_file 1 2916  11 target_file 1 2910  
1389 14 Dtool_vDgfKJeX 0 6 1386 2957 0 14 Dtool_vDgfKJeX 893 // Filename: patchfile.I
// Created by:  darren, mike (09Jan97)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
//#include "config_downloader.h"
////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_progress
//       Access: Published
//  Description: Returns a value in the range 0..1, representing the
//               amount of progress through the patchfile, during a
//               session.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3129  
1390 14 Dtool_vDgfqUQ9 0 4 1387 2882 0 14 Dtool_vDgfqUQ9 685 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::set_allow_multifile
//       Access: Published
//  Description: If this flag is set true, the Patchfile will make a
//               special case for patching Panda Multifiles, if
//               detected, and attempt to patch them on a
//               subfile-by-subfile basis.  If this flag is false, the
//               Patchfile will always patch the file on a full-file
//               basis.
//
//               This has effect only when building patches; it is not
//               used for applying patches.
//////////////////////////////////////////////////////////////////// 2 4 this 3 3127  15 allow_multifile 1 2884  
1391 14 Dtool_vDgfTyCX 0 6 1388 2884 0 14 Dtool_vDgfTyCX 256 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_allow_multifile
//       Access: Published
//  Description: See set_allow_multifile().
//////////////////////////////////////////////////////////////////// 1 4 this 3 3127  
1392 14 Dtool_vDgfbc1x 0 4 1389 2882 0 14 Dtool_vDgfbc1x 230 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::set_footprint_length
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 3127  6 length 1 2883  
1393 14 Dtool_vDgfAsYn 0 6 1390 2883 0 14 Dtool_vDgfAsYn 230 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_footprint_length
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3127  
1394 14 Dtool_vDgflU88 0 4 1391 2882 0 14 Dtool_vDgflU88 232 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::reset_footprint_length
//       Access: Published
//  Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 3127  
1395 14 Dtool_vDgfMoom 0 6 1392 2884 0 14 Dtool_vDgfMoom 391 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::has_source_hash
//       Access: Published
//  Description: Returns true if the MD5 hash for the source file is
//               known.  (Some early versions of the patch file did
//               not store this information.)
//////////////////////////////////////////////////////////////////// 1 4 this 3 3129  
1396 14 Dtool_vDgf4eHg 0 6 1393 3083 0 14 Dtool_vDgf4eHg 267 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_source_hash
//       Access: Published
//  Description: Returns the MD5 hash for the source file.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3129  
1397 14 Dtool_vDgfmkYw 0 6 1394 3083 0 14 Dtool_vDgfmkYw 310 ////////////////////////////////////////////////////////////////////
//     Function: Patchfile::get_result_hash
//       Access: Published
//  Description: Returns the MD5 hash for the file after the patch has
//               been applied.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3129  
1398 14 Dtool_vDgfvclK 0 7 1397 3133 2740 14 Dtool_vDgfvclK 0 1 5 other 1 3131  
1399 14 Dtool_vDgfCJKJ 0 7 1397 3133 2740 14 Dtool_vDgfCJKJ 0 2 4 name 1 2880  10 maxEntries 1 2883  
1400 14 Dtool_vDgf1b5J 0 7 1397 3133 2740 14 Dtool_vDgf1b5J 0 1 4 name 1 2880  
1401 14 Dtool_vDgfyvu0 0 7 1397 3133 2740 14 Dtool_vDgfyvu0 0 0 
1402 14 Dtool_vDgf98tX 0 4 1399 2882 0 14 Dtool_vDgf98tX 0 3 4 this 3 3133  4 name 1 2880  10 maxEntries 1 2883  
1403 14 Dtool_vDgfi6RM 0 4 1399 2882 0 14 Dtool_vDgfi6RM 0 2 4 this 3 3133  4 name 1 2880  
1404 14 Dtool_vDgf8f04 0 4 1400 2882 0 14 Dtool_vDgf8f04 472 // Filename: profileTimer.I
// Created by:  
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University.  All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license.  You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
//////////////////////////////////////////////////////////////////// 1 4 this 3 3133  
1405 14 Dtool_vDgfZpR4 0 4 1401 2882 0 14 Dtool_vDgfZpR4 0 2 4 this 3 3133  3 tag 1 2880  
1406 14 Dtool_vDgf5qDp 0 4 1402 2882 0 14 Dtool_vDgf5qDp 0 1 4 this 3 3133  
1407 14 Dtool_vDgfez0S 0 4 1402 2882 0 14 Dtool_vDgfez0S 0 2 4 this 3 3133  3 tag 1 2880  
1408 14 Dtool_vDgfQ1Vu 0 6 1403 2886 0 14 Dtool_vDgfQ1Vu 110 // Don't call any of the following during timing:
// (Because they are slow, not because anything will break). 1 4 this 3 3131  
1409 14 Dtool_vDgfr9_x 0 4 1404 2882 0 14 Dtool_vDgfr9_x 110 // Don't call any of the following during timing:
// (Because they are slow, not because anything will break). 1 3 out 1 2887  
1410 14 Dtool_vDgfQiNX 0 4 1404 2882 0 14 Dtool_vDgfQiNX 110 // Don't call any of the following during timing:
// (Because they are slow, not because anything will break). 0 
1411 14 Dtool_vDgfLAMQ 0 4 1405 2882 0 14 Dtool_vDgfLAMQ 0 2 4 this 3 3131  3 out 1 2887  
1412 14 Dtool_vDgfENRS 0 4 1405 2882 0 14 Dtool_vDgfENRS 0 1 4 this 3 3131  
1413 14 Dtool_vDgf0a5y 0 4 1406 2882 0 14 Dtool_vDgf0a5y 0 1 3 out 1 2887  
1414 14 Dtool_vDgfupg_ 0 4 1406 2882 0 14 Dtool_vDgfupg_ 0 0 
1415 14 Dtool_vDgfUUXZ 0 4 1407 2882 0 14 Dtool_vDgfUUXZ 0 2 4 this 3 3131  3 out 1 2887  
1416 14 Dtool_vDgfBgcv 0 4 1407 2882 0 14 Dtool_vDgfBgcv 0 1 4 this 3 3131  
1417 14 Dtool_vDgf51lz 0 6 1409 2884 0 14 Dtool_vDgf51lz 327 ////////////////////////////////////////////////////////////////////
//     Function: WeakPointerToVoid::was_deleted
//       Access: Published
//  Description: Returns true if the object we are pointing to has
//               been deleted, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3134  
1418 14 Dtool_vDgfEthC 0 6 1410 2884 0 14 Dtool_vDgfEthC 328 ////////////////////////////////////////////////////////////////////
//     Function: WeakPointerToVoid::is_valid_pointer
//       Access: Published
//  Description: Returns true if the pointer is not null and the
//               object has not been deleted.
//////////////////////////////////////////////////////////////////// 1 4 this 3 3134  
1419 14 Dtool_vDgfDPnB 0 6 1413 2884 0 14 Dtool_vDgfDPnB 608 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::set_string_value
//       Access: Published, Static
//  Description: Sets the registry key to the indicated value as a
//               string.  The supplied string value is automatically
//               converted from whatever encoding is set by
//               TextEncoder::set_default_encoding() and written as a
//               Unicode string.  The registry key must already exist
//               prior to calling this function.
//////////////////////////////////////////////////////////////////// 4 3 key 1 2880  4 name 1 2880  5 value 1 2880  2 rl 1 2874  
1420 14 Dtool_vDgf02db 0 6 1413 2884 0 14 Dtool_vDgf02db 608 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::set_string_value
//       Access: Published, Static
//  Description: Sets the registry key to the indicated value as a
//               string.  The supplied string value is automatically
//               converted from whatever encoding is set by
//               TextEncoder::set_default_encoding() and written as a
//               Unicode string.  The registry key must already exist
//               prior to calling this function.
//////////////////////////////////////////////////////////////////// 3 3 key 1 2880  4 name 1 2880  5 value 1 2880  
1421 14 Dtool_vDgfRuG8 0 6 1414 2884 0 14 Dtool_vDgfRuG8 400 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::set_int_value
//       Access: Published, Static
//  Description: Sets the registry key to the indicated value as an
//               integer.  The registry key must already exist prior
//               to calling this function.
//////////////////////////////////////////////////////////////////// 4 3 key 1 2880  4 name 1 2880  5 value 1 2883  2 rl 1 2874  
1422 14 Dtool_vDgfB50d 0 6 1414 2884 0 14 Dtool_vDgfB50d 400 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::set_int_value
//       Access: Published, Static
//  Description: Sets the registry key to the indicated value as an
//               integer.  The registry key must already exist prior
//               to calling this function.
//////////////////////////////////////////////////////////////////// 3 3 key 1 2880  4 name 1 2880  5 value 1 2883  
1423 14 Dtool_vDgfpPKo 0 6 1416 2875 0 14 Dtool_vDgfpPKo 355 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_key_type
//       Access: Published, Static
//  Description: Returns the type of the indicated key, or T_none if
//               the key is not known or is some unsupported type.
//////////////////////////////////////////////////////////////////// 3 3 key 1 2880  4 name 1 2880  2 rl 1 2874  
1424 14 Dtool_vDgfLoxx 0 6 1416 2875 0 14 Dtool_vDgfLoxx 355 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_key_type
//       Access: Published, Static
//  Description: Returns the type of the indicated key, or T_none if
//               the key is not known or is some unsupported type.
//////////////////////////////////////////////////////////////////// 2 3 key 1 2880  4 name 1 2880  
1425 14 Dtool_vDgftP_u 0 6 1417 2880 0 14 Dtool_vDgftP_u 597 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_string_value
//       Access: Published, Static
//  Description: Returns the value associated with the indicated
//               registry key, assuming it is a string value.  The
//               string value is automatically encoded using
//               TextEncoder::get_default_encoding().  If the key is
//               not defined or is not a string type value,
//               default_value is returned instead.
//////////////////////////////////////////////////////////////////// 4 3 key 1 2880  4 name 1 2880  13 default_value 1 2880  2 rl 1 2874  
1426 14 Dtool_vDgfR21I 0 6 1417 2880 0 14 Dtool_vDgfR21I 597 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_string_value
//       Access: Published, Static
//  Description: Returns the value associated with the indicated
//               registry key, assuming it is a string value.  The
//               string value is automatically encoded using
//               TextEncoder::get_default_encoding().  If the key is
//               not defined or is not a string type value,
//               default_value is returned instead.
//////////////////////////////////////////////////////////////////// 3 3 key 1 2880  4 name 1 2880  13 default_value 1 2880  
1427 14 Dtool_vDgfuuep 0 6 1418 2883 0 14 Dtool_vDgfuuep 478 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_int_value
//       Access: Published, Static
//  Description: Returns the value associated with the indicated
//               registry key, assuming it is an integer value.  If
//               the key is not defined or is not an integer type
//               value, default_value is returned instead.
//////////////////////////////////////////////////////////////////// 4 3 key 1 2880  4 name 1 2880  13 default_value 1 2883  2 rl 1 2874  
1428 14 Dtool_vDgfk5ML 0 6 1418 2883 0 14 Dtool_vDgfk5ML 478 ////////////////////////////////////////////////////////////////////
//     Function: WindowsRegistry::get_int_value
//       Access: Published, Static
//  Description: Returns the value associated with the indicated
//               registry key, assuming it is an integer value.  If
//               the key is not defined or is not an integer type
//               value, default_value is returned instead.
//////////////////////////////////////////////////////////////////// 3 3 key 1 2880  4 name 1 2880  13 default_value 1 2883  
1429 14 Dtool_vDgf_Q2z 0 6 939 3136 0 14 Dtool_vDgf_Q2z 92 // Returns the configure object for accessing config variables from a
// scripting language. 0 
1430 14 Dtool_vDgf_Igl 0 6 952 2880 0 14 Dtool_vDgf_Igl 363 ////////////////////////////////////////////////////////////////////
//     Function: compress_string
//       Access: Published
//  Description: Compress the indicated source string at the given
//               compression level (1 through 9).  Returns the
//               compressed string.
//////////////////////////////////////////////////////////////////// 2 6 source 1 2880  17 compression_level 1 2883  
1431 14 Dtool_vDgfWZVW 0 6 953 2880 0 14 Dtool_vDgfWZVW 507 ////////////////////////////////////////////////////////////////////
//     Function: decompress_string
//       Access: Published
//  Description: Decompresss the previously-compressed string()).  The
//               return value is the decompressed string.
//
//               Note that a decompression error cannot easily be
//               detected, and the return value may simply be a
//               garbage or truncated string.
//////////////////////////////////////////////////////////////////// 1 6 source 1 2880  
1432 14 Dtool_vDgfBvBY 0 6 954 2884 0 14 Dtool_vDgfBvBY 566 ////////////////////////////////////////////////////////////////////
//     Function: compress_file
//       Access: Published
//  Description: Compresss the data from the source file at the given
//               compression level (1 through 9).  The source file is
//               read in its entirety, and the compressed results are
//               written to the dest file, overwriting its contents.
//               The return value is bool on success, or false on
//               failure.
//////////////////////////////////////////////////////////////////// 3 6 source 1 2910  4 dest 1 2910  17 compression_level 1 2883  
1433 14 Dtool_vDgfC5jl 0 6 955 2884 0 14 Dtool_vDgfC5jl 684 ////////////////////////////////////////////////////////////////////
//     Function: decompress_file
//       Access: Published
//  Description: Decompresss the data from the source file.  The
//               source file is read in its entirety, and the
//               decompressed results are written to the dest file,
//               overwriting its contents.  The return value is bool
//               on success, or false on failure.
//
//               Note that a decompression error cannot easily be
//               detected, and the output may simply be a garbage
//               or truncated string.
//////////////////////////////////////////////////////////////////// 2 6 source 1 2910  4 dest 1 2910  
1434 14 Dtool_vDgfNHUN 0 6 956 2884 0 14 Dtool_vDgfNHUN 578 ////////////////////////////////////////////////////////////////////
//     Function: compress_stream
//       Access: Published
//  Description: Compresss the data from the source stream at the
//               given compression level (1 through 9).  The source
//               stream is read from its current position to the
//               end-of-file, and the compressed results are written
//               to the dest stream.  The return value is bool on
//               success, or false on failure.
//////////////////////////////////////////////////////////////////// 3 6 source 1 2890  4 dest 1 2887  17 compression_level 1 2883  
1435 14 Dtool_vDgfDtAh 0 6 957 2884 0 14 Dtool_vDgfDtAh 733 ////////////////////////////////////////////////////////////////////
//     Function: decompress_stream
//       Access: Published
//  Description: Decompresss the data from the previously-compressed
//               source stream.  The source stream is read from its
//               current position to the end-of-file, and the
//               decompressed results are written to the dest stream.
//               The return value is bool on success, or false on
//               failure.
//
//               Note that a decompression error cannot easily be
//               detected, and the output may simply be a garbage
//               or truncated string.
//////////////////////////////////////////////////////////////////// 2 6 source 1 2890  4 dest 1 2887  
1436 14 Dtool_vDgf49MX 0 6 958 2884 0 14 Dtool_vDgf49MX 446 ////////////////////////////////////////////////////////////////////
//     Function: copy_stream
//       Access: Published
//  Description: Reads the source stream from its current position to
//               the end of the stream, and writes that data to the
//               dest stream at its current position.  Returns true on
//               success, false on failure.
//////////////////////////////////////////////////////////////////// 2 6 source 1 2890  4 dest 1 2887  
1437 14 Dtool_vDgfF10e 0 6 1073 2880 0 14 Dtool_vDgfF10e 394 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_string
//       Access: Published
//  Description: Encrypts the indicated source string using the given
//               password, and the algorithm specified by
//               encryption-algorithm.  Returns the encrypted string.
//////////////////////////////////////////////////////////////////// 5 6 source 1 2880  8 password 1 2880  9 algorithm 1 2880  10 key_length 1 2883  15 iteration_count 1 2883  
1438 14 Dtool_vDgfWz9H 0 6 1073 2880 0 14 Dtool_vDgfWz9H 394 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_string
//       Access: Published
//  Description: Encrypts the indicated source string using the given
//               password, and the algorithm specified by
//               encryption-algorithm.  Returns the encrypted string.
//////////////////////////////////////////////////////////////////// 4 6 source 1 2880  8 password 1 2880  9 algorithm 1 2880  10 key_length 1 2883  
1439 14 Dtool_vDgfm3h8 0 6 1073 2880 0 14 Dtool_vDgfm3h8 394 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_string
//       Access: Published
//  Description: Encrypts the indicated source string using the given
//               password, and the algorithm specified by
//               encryption-algorithm.  Returns the encrypted string.
//////////////////////////////////////////////////////////////////// 3 6 source 1 2880  8 password 1 2880  9 algorithm 1 2880  
1440 14 Dtool_vDgfiH_H 0 6 1073 2880 0 14 Dtool_vDgfiH_H 394 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_string
//       Access: Published
//  Description: Encrypts the indicated source string using the given
//               password, and the algorithm specified by
//               encryption-algorithm.  Returns the encrypted string.
//////////////////////////////////////////////////////////////////// 2 6 source 1 2880  8 password 1 2880  
1441 14 Dtool_vDgfJ1fC 0 6 1074 2880 0 14 Dtool_vDgfJ1fC 625 ////////////////////////////////////////////////////////////////////
//     Function: decrypt_string
//       Access: Published
//  Description: Decrypts the previously-encrypted string using the
//               given password (which must be the same password
//               passed to encrypt()).  The return value is the
//               decrypted string.
//
//               Note that a decryption error, including an incorrect
//               password, cannot easily be detected, and the return
//               value may simply be a garbage string.
//////////////////////////////////////////////////////////////////// 2 6 source 1 2880  8 password 1 2880  
1442 14 Dtool_vDgfK7Ye 0 6 1075 2884 0 14 Dtool_vDgfK7Ye 527 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_file
//       Access: Published
//  Description: Encrypts the data from the source file using the
//               given password.  The source file is read in its
//               entirety, and the encrypted results are written to
//               the dest file, overwriting its contents.  The return
//               value is bool on success, or false on failure.
//////////////////////////////////////////////////////////////////// 6 6 source 1 2910  4 dest 1 2910  8 password 1 2880  9 algorithm 1 2880  10 key_length 1 2883  15 iteration_count 1 2883  
1443 14 Dtool_vDgfw9Ww 0 6 1075 2884 0 14 Dtool_vDgfw9Ww 527 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_file
//       Access: Published
//  Description: Encrypts the data from the source file using the
//               given password.  The source file is read in its
//               entirety, and the encrypted results are written to
//               the dest file, overwriting its contents.  The return
//               value is bool on success, or false on failure.
//////////////////////////////////////////////////////////////////// 5 6 source 1 2910  4 dest 1 2910  8 password 1 2880  9 algorithm 1 2880  10 key_length 1 2883  
1444 14 Dtool_vDgf8MX5 0 6 1075 2884 0 14 Dtool_vDgf8MX5 527 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_file
//       Access: Published
//  Description: Encrypts the data from the source file using the
//               given password.  The source file is read in its
//               entirety, and the encrypted results are written to
//               the dest file, overwriting its contents.  The return
//               value is bool on success, or false on failure.
//////////////////////////////////////////////////////////////////// 4 6 source 1 2910  4 dest 1 2910  8 password 1 2880  9 algorithm 1 2880  
1445 14 Dtool_vDgf7a3v 0 6 1075 2884 0 14 Dtool_vDgf7a3v 527 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_file
//       Access: Published
//  Description: Encrypts the data from the source file using the
//               given password.  The source file is read in its
//               entirety, and the encrypted results are written to
//               the dest file, overwriting its contents.  The return
//               value is bool on success, or false on failure.
//////////////////////////////////////////////////////////////////// 3 6 source 1 2910  4 dest 1 2910  8 password 1 2880  
1446 14 Dtool_vDgfiIWq 0 6 1076 2884 0 14 Dtool_vDgfiIWq 792 ////////////////////////////////////////////////////////////////////
//     Function: decrypt_file
//       Access: Published
//  Description: Decrypts the data from the source file using the
//               given password (which must match the same password
//               passed to encrypt()).  The source file is read in its
//               entirety, and the decrypted results are written to
//               the dest file, overwriting its contents.  The return
//               value is bool on success, or false on failure.
//
//               Note that a decryption error, including an incorrect
//               password, cannot easily be detected, and the output
//               may simply be a garbage string.
//////////////////////////////////////////////////////////////////// 3 6 source 1 2910  4 dest 1 2910  8 password 1 2880  
1447 14 Dtool_vDgfMWEu 0 6 1077 2884 0 14 Dtool_vDgfMWEu 554 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_stream
//       Access: Published
//  Description: Encrypts the data from the source stream using the
//               given password.  The source stream is read from its
//               current position to the end-of-file, and the
//               encrypted results are written to the dest stream.
//               The return value is bool on success, or false on
//               failure.
//////////////////////////////////////////////////////////////////// 6 6 source 1 2890  4 dest 1 2887  8 password 1 2880  9 algorithm 1 2880  10 key_length 1 2883  15 iteration_count 1 2883  
1448 14 Dtool_vDgf7aMX 0 6 1077 2884 0 14 Dtool_vDgf7aMX 554 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_stream
//       Access: Published
//  Description: Encrypts the data from the source stream using the
//               given password.  The source stream is read from its
//               current position to the end-of-file, and the
//               encrypted results are written to the dest stream.
//               The return value is bool on success, or false on
//               failure.
//////////////////////////////////////////////////////////////////// 5 6 source 1 2890  4 dest 1 2887  8 password 1 2880  9 algorithm 1 2880  10 key_length 1 2883  
1449 14 Dtool_vDgf_WwL 0 6 1077 2884 0 14 Dtool_vDgf_WwL 554 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_stream
//       Access: Published
//  Description: Encrypts the data from the source stream using the
//               given password.  The source stream is read from its
//               current position to the end-of-file, and the
//               encrypted results are written to the dest stream.
//               The return value is bool on success, or false on
//               failure.
//////////////////////////////////////////////////////////////////// 4 6 source 1 2890  4 dest 1 2887  8 password 1 2880  9 algorithm 1 2880  
1450 14 Dtool_vDgfhwPX 0 6 1077 2884 0 14 Dtool_vDgfhwPX 554 ////////////////////////////////////////////////////////////////////
//     Function: encrypt_stream
//       Access: Published
//  Description: Encrypts the data from the source stream using the
//               given password.  The source stream is read from its
//               current position to the end-of-file, and the
//               encrypted results are written to the dest stream.
//               The return value is bool on success, or false on
//               failure.
//////////////////////////////////////////////////////////////////// 3 6 source 1 2890  4 dest 1 2887  8 password 1 2880  
1451 14 Dtool_vDgfYiuR 0 6 1078 2884 0 14 Dtool_vDgfYiuR 838 ////////////////////////////////////////////////////////////////////
//     Function: decrypt_stream
//       Access: Published
//  Description: Decrypts the data from the previously-encrypted
//               source stream using the given password (which must be
//               the same password passed to encrypt()).  The source
//               stream is read from its current position to the
//               end-of-file, and the decrypted results are written to
//               the dest stream.  The return value is bool on
//               success, or false on failure.
//
//               Note that a decryption error, including an incorrect
//               password, cannot easily be detected, and the output
//               may simply be a garbage string.
//////////////////////////////////////////////////////////////////// 3 6 source 1 2890  4 dest 1 2887  8 password 1 2880  
1452 14 Dtool_vDgfs1c1 0 6 1080 2880 0 14 Dtool_vDgfs1c1 185 ////////////////////////////////////////////////////////////////////
//     Function: error_to_text
//  Description:
//////////////////////////////////////////////////////////////////// 1 3 err 1 2843  
1453 14 Dtool_vDgfp_jp 0 6 1081 2883 0 14 Dtool_vDgfp_jp 187 ////////////////////////////////////////////////////////////////////
//     Function: get_write_error
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1454 14 Dtool_vDgfyg1b 0 6 1082 2880 0 14 Dtool_vDgfyg1b 191 ////////////////////////////////////////////////////////////////////
//     Function: handle_socket_error
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1455 14 Dtool_vDgf_VSF 0 6 1083 2883 0 14 Dtool_vDgf_VSF 189 ////////////////////////////////////////////////////////////////////
//     Function: get_network_error
//  Description:
//////////////////////////////////////////////////////////////////// 0 
1456 14 Dtool_vDgfG9V_ 0 6 1395 2880 0 14 Dtool_vDgfG9V_ 1691 ////////////////////////////////////////////////////////////////////
//     Function: password_hash
//       Access: Published
//  Description: Generates a non-reversible hash of a particular
//               length based on an arbitrary password and a random
//               salt.  This is much stronger than the algorithm
//               implemented by the standard Unix crypt().
//
//               The resulting hash can be useful for two primary
//               purposes: (1) the hash may be recorded to disk in
//               lieu of recording plaintext passwords, for validation
//               against a password entered by the user later (which
//               should produce the same hash given a particular
//               salt), or (2) the hash may be used as input to an
//               encryption algorithm that requires a key of a
//               particular length.
//
//               password is the text password provided by a user.
//
//               salt should be a string of arbitrary random bytes (it
//               need not be crypotographically secure, just different
//               for each different hash).
//
//               iters should be a number in the thousands to indicate
//               the number of times the hash algorithm should be
//               applied.  In general, iters should be chosen to make
//               the computation as expensive as it can be and still
//               be tolerable, to reduce the attractiveness of a
//               brute-force attack.
//
//               keylen is the length in bytes of the required key
//               hash.
//////////////////////////////////////////////////////////////////// 4 8 password 1 2880  4 salt 1 2880  5 iters 1 2883  6 keylen 1 2883  
381
2758 17 ConfigDeclaration 0 43009 17 ConfigDeclaration 17 ConfigDeclaration 0 0 0 0 0 0 23 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 0 0 1 0 2759 0 0 0 0 486
////////////////////////////////////////////////////////////////////
//       Class : ConfigDeclaration
// Description : A single declaration of a config variable, typically
//               defined as one line in a .prc file,
//               e.g. "show-frame-rate-meter 1".  This is really just
//               a pairing of a string name (actually, a
//               ConfigVariableCore pointer) to a string value.
////////////////////////////////////////////////////////////////////

2759 11 ConfigFlags 0 141313 11 ConfigFlags 11 ConfigFlags 0 0 0 0 1457 0 0 0 0 0 0 2 2760 2761 414
////////////////////////////////////////////////////////////////////
//       Class : ConfigFlags
// Description : This class is the base class of both ConfigVariable
//               and ConfigVariableCore.  It exists only to provide a
//               convenient name scoping for some enumerated values
//               common to both classes.
////////////////////////////////////////////////////////////////////

2760 9 ValueType 0 794624 22 ConfigFlags::ValueType 22 ConfigFlags::ValueType 2759 0 0 0 0 0 0 0 0 0 10 12 VT_undefined 25 ConfigFlags::VT_undefined 0 7 VT_list 20 ConfigFlags::VT_list 1 9 VT_string 22 ConfigFlags::VT_string 2 11 VT_filename 24 ConfigFlags::VT_filename 3 7 VT_bool 20 ConfigFlags::VT_bool 4 6 VT_int 19 ConfigFlags::VT_int 5 9 VT_double 22 ConfigFlags::VT_double 6 7 VT_enum 20 ConfigFlags::VT_enum 7 14 VT_search_path 27 ConfigFlags::VT_search_path 8 8 VT_int64 21 ConfigFlags::VT_int64 9 0 0

2761 13 VariableFlags 0 794624 26 ConfigFlags::VariableFlags 26 ConfigFlags::VariableFlags 2759 0 0 0 0 0 0 0 0 0 5 18 F_trust_level_mask 31 ConfigFlags::F_trust_level_mask 4095 6 F_open 19 ConfigFlags::F_open 4096 8 F_closed 21 ConfigFlags::F_closed 8192 9 F_dynamic 22 ConfigFlags::F_dynamic 16384 9 F_dconfig 22 ConfigFlags::F_dconfig 32768 0 0

2762 10 ConfigPage 0 43009 10 ConfigPage 10 ConfigPage 0 0 0 0 0 0 25 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 0 0 0 0 0 493
////////////////////////////////////////////////////////////////////
//       Class : ConfigPage
// Description : A page of ConfigDeclarations that may be loaded or
//               unloaded.  Typically this represents a single .prc
//               file that is read from disk at runtime, but it may
//               also represent a list of declarations built up
//               by application code and explicitly loaded.
////////////////////////////////////////////////////////////////////

2763 17 ConfigPageManager 0 43009 17 ConfigPageManager 17 ConfigPageManager 0 0 0 0 0 0 19 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 0 0 1 0 2759 0 0 0 0 334
////////////////////////////////////////////////////////////////////
//       Class : ConfigPageManager
// Description : A global object that maintains the set of ConfigPages
//               everywhere in the world, and keeps them in sorted
//               order.
////////////////////////////////////////////////////////////////////

2764 14 ConfigVariable 0 26625 14 ConfigVariable 14 ConfigVariable 0 0 0 1 1537 1538 0 20 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 0 0 1 0 2765 0 0 0 0 709
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariable
// Description : This is a generic, untyped ConfigVariable.  It is
//               also the base class for the typed ConfigVariables,
//               and contains all of the code common to
//               ConfigVariables of all types (except
//               ConfigVariableList, which is a bit of a special
//               case).
//
//               Mostly, this class serves as a thin wrapper around
//               ConfigVariableCore and/or ConfigDeclaration, more or
//               less duplicating the interface presented there.
////////////////////////////////////////////////////////////////////

2765 18 ConfigVariableBase 0 43009 18 ConfigVariableBase 18 ConfigVariableBase 0 0 0 0 0 0 12 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 0 0 1 0 2759 0 0 0 0 698
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableBase
// Description : This class is the base class for both
//               ConfigVariableList and ConfigVariable (and hence for
//               all of the ConfigVariableBool, ConfigVaribleString,
//               etc. classes).  It collects together the common
//               interface for all generic ConfigVariables.
//
//               Mostly, this class serves as a thin wrapper around
//               ConfigVariableCore and/or ConfigDeclaration, more or
//               less duplicating the interface presented there.
////////////////////////////////////////////////////////////////////

2766 18 ConfigVariableBool 0 141313 18 ConfigVariableBool 18 ConfigVariableBool 0 0 0 1 1559 1569 0 8 1560 1562 1563 1564 1565 1566 1567 1568 0 1 1561 1 0 2764 0 0 0 0 283
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableBool
// Description : This is a convenience class to specialize
//               ConfigVariable as a boolean type.
////////////////////////////////////////////////////////////////////

2767 18 ConfigVariableCore 0 43009 18 ConfigVariableCore 18 ConfigVariableCore 0 0 0 0 0 0 28 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 4 3139 3140 3141 3142 0 1 0 2759 0 0 0 0 615
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableCore
// Description : The internal definition of a ConfigVariable.  This
//               object is shared between all instances of a
//               ConfigVariable that use the same variable name.
//
//               You cannot create a ConfigVariableCore instance
//               directly; instead, use the make() method, which may
//               return a shared instance.  Once created, these
//               objects are never destructed.
////////////////////////////////////////////////////////////////////

2768 20 ConfigVariableDouble 0 141313 20 ConfigVariableDouble 20 ConfigVariableDouble 0 0 0 1 1598 1608 0 8 1599 1601 1602 1603 1604 1605 1606 1607 0 1 1600 1 0 2764 0 0 0 0 292
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableDouble
// Description : This is a convenience class to specialize
//               ConfigVariable as a floating-point type.
////////////////////////////////////////////////////////////////////

2769 22 ConfigVariableFilename 0 141313 22 ConfigVariableFilename 22 ConfigVariableFilename 0 0 0 1 1609 1630 0 19 1610 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 0 1 1611 1 0 2764 0 0 0 0 584
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableFilename
// Description : This is a convenience class to specialize
//               ConfigVariable as a Filename type.  It is almost the
//               same thing as ConfigVariableString, except it handles
//               an implicit Filename::expand_from() operation so that
//               the user may put OS-specific filenames, or filenames
//               based on environment variables, in the prc file.
////////////////////////////////////////////////////////////////////

2770 17 ConfigVariableInt 0 141313 17 ConfigVariableInt 17 ConfigVariableInt 0 0 0 1 1631 1641 0 8 1632 1634 1635 1636 1637 1638 1639 1640 0 1 1633 1 0 2764 0 0 0 0 283
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableInt
// Description : This is a convenience class to specialize
//               ConfigVariable as an integer type.
////////////////////////////////////////////////////////////////////

2771 19 ConfigVariableInt64 0 141313 19 ConfigVariableInt64 19 ConfigVariableInt64 0 0 0 1 1642 1652 0 8 1643 1645 1646 1647 1648 1649 1650 1651 0 1 1644 1 0 2764 0 0 0 0 291
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableInt64
// Description : This is a convenience class to specialize
//               ConfigVariable as a 64-bit integer type.
////////////////////////////////////////////////////////////////////

2772 18 ConfigVariableList 0 26625 18 ConfigVariableList 18 ConfigVariableList 0 0 0 1 1653 1654 0 8 1655 1656 1657 1658 1659 1660 1661 1662 0 0 1 0 2765 0 0 0 0 779
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableList
// Description : This class is similar to ConfigVariable, but it
//               reports its value as a list of strings.  In this
//               special case, all of the declarations of the variable
//               are returned as the elements of this list, in order.
//
//               Note that this is different from a normal
//               ConfigVariableString, which just returns its topmost
//               value, which can optionally be treated as a number of
//               discrete words by dividing it at the spaces.
//
//               A ConfigVariableList cannot be modified locally.
////////////////////////////////////////////////////////////////////

2773 21 ConfigVariableManager 0 43009 21 ConfigVariableManager 21 ConfigVariableManager 0 0 0 0 0 0 13 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1 3143 0 0 0 0 391
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableManager
// Description : A global object that maintains the set of
//               ConfigVariables (actually, ConfigVariableCores)
//               everywhere in the world, and keeps them in sorted
//               order.
////////////////////////////////////////////////////////////////////

2774 24 ConfigVariableSearchPath 0 26625 24 ConfigVariableSearchPath 24 ConfigVariableSearchPath 0 0 0 1 1676 1677 0 15 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1 3144 1 1678 1 0 2765 0 0 0 0 1125
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableSearchPath
// Description : This is similar to a ConfigVariableList, but it
//               returns its list as a DSearchPath, as a list of
//               directories.
//
//               You may locally append directories to the end of the
//               search path with the methods here, or prepend them to
//               the beginning.  Use these methods to make adjustments
//               to the path; do not attempt to directly modify the
//               const DSearchPath object returned by get_value().
//
//               Unlike other ConfigVariable types, local changes
//               (made by calling append_directory() and
//               prepend_directory()) are specific to this particular
//               instance of the ConfigVariableSearchPath.  A separate
//               instance of the same variable, created by using the
//               same name to the constructor, will not reflect the
//               local changes.
////////////////////////////////////////////////////////////////////

2775 20 ConfigVariableString 0 141313 20 ConfigVariableString 20 ConfigVariableString 0 0 0 1 1694 1709 0 13 1695 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 0 1 1696 1 0 2764 0 0 0 0 284
////////////////////////////////////////////////////////////////////
//       Class : ConfigVariableString
// Description : This is a convenience class to specialize
//               ConfigVariable as a string type.
////////////////////////////////////////////////////////////////////

2776 11 CPTA_double 0 141313 29 ConstPointerToArray< double > 29 ConstPointerToArray< double > 0 0 0 1 1715 1725 0 9 1716 1717 1718 1719 1720 1721 1722 1723 1724 0 0 1 0 2777 0 0 0 0 0

2777 28 PointerToArrayBase< double > 0 26625 28 PointerToArrayBase< double > 28 PointerToArrayBase< double > 0 0 0 0 1714 0 0 0 0 1 0 2778 0 0 0 0 0

2778 49 PointerToBase< ReferenceCountedVector< double > > 0 43009 49 PointerToBase< ReferenceCountedVector< double > > 49 PointerToBase< ReferenceCountedVector< double > > 0 0 0 0 0 0 2 1712 1713 0 0 1 0 2779 0 0 0 0 0

2779 13 PointerToVoid 0 43009 13 PointerToVoid 13 PointerToVoid 0 0 0 0 0 0 2 1710 1711 0 0 1 0 2780 0 0 0 0 635
////////////////////////////////////////////////////////////////////
//       Class : PointerToVoid
// Description : This is the non-template part of the base class for
//               PointerTo and ConstPointerTo.  It is necessary so we
//               can keep a pointer to a non-template class within the
//               ReferenceCount object, to implement weak reference
//               pointers--we need to have something to clean up when
//               the ReferenceCount object destructs.
//
//               This is the base class for PointerToBase<T>.
////////////////////////////////////////////////////////////////////

2780 10 MemoryBase 0 2049 10 MemoryBase 10 MemoryBase 0 0 0 0 0 0 0 0 0 0 0 0 704
////////////////////////////////////////////////////////////////////
//       Class : MemoryBase
// Description : This class is intended to be the base class of all
//               objects in Panda that might be allocated and deleted
//               via the new and delete operators.  It redefines these
//               operators to provide some memory tracking support.
//
//               We used to try to override the global operator new
//               and delete methods, but that seems to cause problems
//               when including header files for C++-based system
//               libraries (such as are found on OSX).
////////////////////////////////////////////////////////////////////

2781 10 CPTA_float 0 141313 28 ConstPointerToArray< float > 28 ConstPointerToArray< float > 0 0 0 1 1729 1739 0 9 1730 1731 1732 1733 1734 1735 1736 1737 1738 0 0 1 0 2782 0 0 0 0 0

2782 27 PointerToArrayBase< float > 0 26625 27 PointerToArrayBase< float > 27 PointerToArrayBase< float > 0 0 0 0 1728 0 0 0 0 1 0 2783 0 0 0 0 0

2783 48 PointerToBase< ReferenceCountedVector< float > > 0 43009 48 PointerToBase< ReferenceCountedVector< float > > 48 PointerToBase< ReferenceCountedVector< float > > 0 0 0 0 0 0 2 1726 1727 0 0 1 0 2779 0 0 0 0 0

2784 8 CPTA_int 0 141313 26 ConstPointerToArray< int > 26 ConstPointerToArray< int > 0 0 0 1 1743 1753 0 9 1744 1745 1746 1747 1748 1749 1750 1751 1752 0 0 1 0 2785 0 0 0 0 0

2785 25 PointerToArrayBase< int > 0 26625 25 PointerToArrayBase< int > 25 PointerToArrayBase< int > 0 0 0 0 1742 0 0 0 0 1 0 2786 0 0 0 0 0

2786 46 PointerToBase< ReferenceCountedVector< int > > 0 43009 46 PointerToBase< ReferenceCountedVector< int > > 46 PointerToBase< ReferenceCountedVector< int > > 0 0 0 0 0 0 2 1740 1741 0 0 1 0 2779 0 0 0 0 0

2787 10 CPTA_uchar 0 141313 36 ConstPointerToArray< unsigned char > 36 ConstPointerToArray< unsigned char > 0 0 0 1 1757 1767 0 9 1758 1759 1760 1761 1762 1763 1764 1765 1766 0 0 1 0 2788 0 0 0 0 0

2788 35 PointerToArrayBase< unsigned char > 0 26625 35 PointerToArrayBase< unsigned char > 35 PointerToArrayBase< unsigned char > 0 0 0 0 1756 0 0 0 0 1 0 2789 0 0 0 0 0

2789 56 PointerToBase< ReferenceCountedVector< unsigned char > > 0 43009 56 PointerToBase< ReferenceCountedVector< unsigned char > > 56 PointerToBase< ReferenceCountedVector< unsigned char > > 0 0 0 0 0 0 2 1754 1755 0 0 1 0 2779 0 0 0 0 0

2790 7 DConfig 0 141313 7 DConfig 7 DConfig 0 0 0 0 1773 0 5 1768 1769 1770 1771 1772 0 0 0 0 0 535
////////////////////////////////////////////////////////////////////
//       Class : DConfig
// Description : This class emulates the old dconfig-style interface
//               to our Panda config system.  It exists only to
//               provide backward-compatible support, and it is used
//               primarily by Python code.  For modern code, use the
//               new ConfigVariable* interface instead of this
//               deprecated interface.
////////////////////////////////////////////////////////////////////

2791 11 DSearchPath 0 26625 11 DSearchPath 11 DSearchPath 0 0 0 1 1784 1786 0 14 1785 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1 3145 0 0 0 1 2792 551
///////////////////////////////////////////////////////////////////
//       Class : DSearchPath
// Description : This class stores a list of directories that can be
//               searched, in order, to locate a particular file.  It
//               is normally constructed by passing it a traditional
//               searchpath-style string, e.g. a list of directory
//               names delimited by spaces or colons, but it can also
//               be built up explicitly.
////////////////////////////////////////////////////////////////////

2792 7 Results 0 288769 20 DSearchPath::Results 20 DSearchPath::Results 2791 0 0 1 1774 1776 0 8 1775 1777 1778 1779 1780 1781 1782 1783 0 0 0 0 0 0

2793 20 ExecutionEnvironment 0 141313 20 ExecutionEnvironment 20 ExecutionEnvironment 0 0 0 0 1811 0 11 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 0 0 0 0 0 475
////////////////////////////////////////////////////////////////////
//       Class : ExecutionEnvironment
// Description : Encapsulates access to the environment variables and
//               command-line arguments at the time of execution.
//               This is encapsulated to support accessing these
//               things during static init time, which seems to be
//               risky at best.
////////////////////////////////////////////////////////////////////

2794 10 FileStream 0 26625 10 FileStream 10 FileStream 0 0 0 1 1836 1837 0 2 1838 1839 0 0 1 0 2795 0 0 0 0 569
////////////////////////////////////////////////////////////////////
//       Class : FileStream
// Description : Implements a C++ stream object suitable for reading
//               from and/or writing to files on disk.  This is
//               similar to fstream, but it provides low-level support
//               for Panda's simple-threading implementation (using
//               this interface will block only the current thread,
//               rather than the entire process, on I/O waits).
////////////////////////////////////////////////////////////////////

2795 8 iostream 0 141313 8 iostream 8 iostream 0 0 0 0 1835 0 1 1834 0 0 2 3 2796 1824 1825 3 2801 1832 1833 0 0 0

2796 7 istream 0 141313 7 istream 7 istream 0 0 0 0 1823 0 3 1820 1821 1822 0 0 1 5 2797 1819 0 0 0 0

2797 3 ios 0 141313 3 ios 3 ios 0 0 0 0 1818 0 5 1813 1814 1815 1816 1817 0 0 1 0 2798 0 0 0 0 0

2798 8 ios_base 0 141313 8 ios_base 8 ios_base 0 0 0 0 1812 0 0 0 0 0 0 2 2799 2800 293
// We don't care (much) about the actual definition of the various
// iostream classes, but we do need to know the classnames that are
// available.
// We need to expose one method in each class to force it to publish.
// But we'd like to expose some of these methods anyway, so no
// problem.

2799 7 seekdir 0 794624 17 ios_base::seekdir 17 ios_base::seekdir 2798 0 0 0 0 0 0 0 0 0 3 3 beg 13 ios_base::beg 0 3 cur 13 ios_base::cur 1 3 end 13 ios_base::end 2 0 0

2800 8 openmode 0 794624 18 ios_base::openmode 18 ios_base::openmode 2798 0 0 0 0 0 0 0 0 0 0 0 0

2801 7 ostream 0 141313 7 ostream 7 ostream 0 0 0 0 1831 0 4 1827 1828 1829 1830 0 0 1 5 2797 1826 0 0 0 0

2802 8 Filename 0 26625 8 Filename 8 Filename 0 0 0 1 1840 1841 0 96 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 0 1 1857 0 0 1 2803 869
////////////////////////////////////////////////////////////////////
//       Class : Filename
// Description : The name of a file, such as a texture file or an Egg
//               file.  Stores the full pathname, and includes
//               functions for extracting out the directory prefix
//               part and the file extension and stuff.
//
//               A Filename is also aware of the mapping between the
//               Unix-like filename convention we use internally, and
//               the local OS's specific filename convention, and it
//               knows how to perform basic OS-specific I/O, like
//               testing for file existence and searching a
//               searchpath, as well as the best way to open an
//               fstream for reading or writing.
////////////////////////////////////////////////////////////////////

2803 4 Type 0 794624 14 Filename::Type 14 Filename::Type 2802 0 0 0 0 0 0 0 0 0 3 9 T_general 19 Filename::T_general 0 5 T_dso 15 Filename::T_dso 1 12 T_executable 22 Filename::T_executable 2 0 0

2804 11 GlobPattern 0 141313 11 GlobPattern 11 GlobPattern 0 0 0 1 1939 1955 0 15 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 0 0 0 0 0 859
////////////////////////////////////////////////////////////////////
//       Class : GlobPattern
// Description : This class can be used to test for string matches
//               against standard Unix-shell filename globbing
//               conventions.  It serves as a portable standin for the
//               Posix fnmatch() call.
//
//               A GlobPattern is given a pattern string, which can
//               contain operators like *, ?, and [].  Then it can be
//               tested against any number of candidate strings; for
//               each candidate, it will indicate whether the string
//               matches the pattern or not.  It can be used, for
//               example, to scan a directory for all files matching a
//               particular pattern.
////////////////////////////////////////////////////////////////////

2805 14 IDecryptStream 0 141313 14 IDecryptStream 14 IDecryptStream 0 0 0 1 1956 1962 0 5 1957 1958 1959 1960 1961 0 0 1 0 2796 0 0 0 0 603
////////////////////////////////////////////////////////////////////
//       Class : IDecryptStream
// Description : An input stream object that uses OpenSSL to decrypt
//               the input from another source stream on-the-fly.
//
//               Attach an IDecryptStream to an existing istream that
//               provides encrypted data, as generated by an
//               OEncryptStream, and read the corresponding
//               unencrypted data from the IDecryptStream.
//
//               Seeking is not supported.
////////////////////////////////////////////////////////////////////

2806 11 IFileStream 0 26625 11 IFileStream 11 IFileStream 0 0 0 1 1963 1964 0 2 1965 1966 0 0 1 0 2796 0 0 0 0 553
////////////////////////////////////////////////////////////////////
//       Class : IFileStream
// Description : Implements a C++ stream object suitable for reading
//               from files on disk.  This is similar to ifstream, but
//               it provides low-level support for Panda's
//               simple-threading implementation (using this interface
//               will block only the current thread, rather than the
//               entire process, on I/O waits).
////////////////////////////////////////////////////////////////////

2807 14 IStreamWrapper 0 26625 14 IStreamWrapper 14 IStreamWrapper 0 0 0 1 1971 1972 0 1 1973 0 0 1 5 2808 1970 0 0 0 390
////////////////////////////////////////////////////////////////////
//       Class : IStreamWrapper
// Description : This class provides a locking wrapper around an
//               arbitrary istream pointer.  A thread may use this
//               class to perform an atomic seek/read/gcount
//               operation.
////////////////////////////////////////////////////////////////////

2808 17 StreamWrapperBase 0 141313 17 StreamWrapperBase 17 StreamWrapperBase 0 0 0 0 1969 0 2 1967 1968 0 0 0 0 0 326
////////////////////////////////////////////////////////////////////
//       Class : StreamWrapperBase
// Description : The base class for both IStreamWrapper and
//               OStreamWrapper, this provides the common locking
//               interface.
////////////////////////////////////////////////////////////////////

2809 15 NeverFreeMemory 0 141313 15 NeverFreeMemory 15 NeverFreeMemory 0 0 0 0 1977 0 3 1974 1975 1976 0 0 0 0 0 818
////////////////////////////////////////////////////////////////////
//       Class : NeverFreeMemory
// Description : This class is used to allocate bytes of memory from a
//               pool that is never intended to be freed.  It is
//               particularly useful to support DeletedChain, which
//               allocates memory in just such a fashion.
//
//               When it is known that memory will not be freed, it is
//               preferable to use this instead of the standard
//               malloc() (or global_operator_new()) call, since this
//               will help reduce fragmentation problems in the
//               dynamic heap.  Also, memory allocated from here will
//               exhibit less wasted space.
////////////////////////////////////////////////////////////////////

2810 6 Notify 0 26625 6 Notify 6 Notify 0 0 0 1 1978 1979 0 15 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 0 0 0 0 0 833
////////////////////////////////////////////////////////////////////
//       Class : Notify
// Description : An object that handles general error reporting to the
//               user.  It contains a pointer to an ostream, initially
//               cerr, which can be reset at will to point to
//               different output devices, according to the needs of
//               the application.  All output generated within Panda
//               should vector through the Notify ostream.
//
//               This also includes a collection of Categories and
//               Severities, which may be independently enabled or
//               disabled, so that error messages may be squelched or
//               respected according to the wishes of the user.
////////////////////////////////////////////////////////////////////

2811 14 NotifyCategory 0 141313 14 NotifyCategory 14 NotifyCategory 0 0 0 0 2020 0 21 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 0 0 2 3 2780 1995 1996 3 2759 1997 1998 0 0 536
////////////////////////////////////////////////////////////////////
//       Class : NotifyCategory
// Description : A particular category of error messages.  Typically
//               there will be one of these per package, so that we
//               can turn on or off error messages at least at a
//               package level; further nested categories can be
//               created within a package if a finer grain of control
//               is required.
////////////////////////////////////////////////////////////////////

2812 14 NotifySeverity 0 532481 14 NotifySeverity 14 NotifySeverity 0 0 0 0 0 0 0 0 0 0 7 14 NS_unspecified 14 NS_unspecified 0 7 NS_spam 7 NS_spam 1 8 NS_debug 8 NS_debug 2 7 NS_info 7 NS_info 3 10 NS_warning 10 NS_warning 4 8 NS_error 8 NS_error 5 8 NS_fatal 8 NS_fatal 6 0 0

2813 14 OEncryptStream 0 141313 14 OEncryptStream 14 OEncryptStream 0 0 0 1 2021 2027 0 5 2022 2023 2024 2025 2026 0 0 1 0 2801 0 0 0 0 545
////////////////////////////////////////////////////////////////////
//       Class : OEncryptStream
// Description : An input stream object that uses OpenSSL to encrypt
//               data to another destination stream on-the-fly.
//
//               Attach an OEncryptStream to an existing ostream that
//               will accept encrypted data, and write your
//               unencrypted source data to the OEncryptStream.
//
//               Seeking is not supported.
////////////////////////////////////////////////////////////////////

2814 11 OFileStream 0 26625 11 OFileStream 11 OFileStream 0 0 0 1 2028 2029 0 2 2030 2031 0 0 1 0 2801 0 0 0 0 551
////////////////////////////////////////////////////////////////////
//       Class : OFileStream
// Description : Implements a C++ stream object suitable for writing
//               to files on disk.  This is similar to ofstream, but
//               it provides low-level support for Panda's
//               simple-threading implementation (using this interface
//               will block only the current thread, rather than the
//               entire process, on I/O waits).
////////////////////////////////////////////////////////////////////

2815 14 OStreamWrapper 0 26625 14 OStreamWrapper 14 OStreamWrapper 0 0 0 1 2033 2034 0 1 2035 0 0 1 5 2808 2032 0 0 0 367
////////////////////////////////////////////////////////////////////
//       Class : OStreamWrapper
// Description : This class provides a locking wrapper around an
//               arbitrary ostream pointer.  A thread may use this
//               class to perform an atomic seek/write operation.
////////////////////////////////////////////////////////////////////

2816 11 PandaSystem 0 43009 11 PandaSystem 11 PandaSystem 0 0 0 0 0 0 23 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 1 3146 0 0 0 0 435
////////////////////////////////////////////////////////////////////
//       Class : PandaSystem
// 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.
////////////////////////////////////////////////////////////////////

2817 10 PTA_double 0 141313 24 PointerToArray< double > 24 PointerToArray< double > 0 0 0 1 2059 2076 0 16 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 0 0 1 0 2777 0 0 0 0 0

2818 9 PTA_float 0 141313 23 PointerToArray< float > 23 PointerToArray< float > 0 0 0 1 2077 2094 0 16 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 0 0 1 0 2782 0 0 0 0 0

2819 7 PTA_int 0 141313 21 PointerToArray< int > 21 PointerToArray< int > 0 0 0 1 2095 2112 0 16 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 0 0 1 0 2785 0 0 0 0 0

2820 9 PTA_uchar 0 141313 31 PointerToArray< unsigned char > 31 PointerToArray< unsigned char > 0 0 0 1 2113 2130 0 16 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 0 0 1 0 2788 0 0 0 0 0

2821 12 StreamReader 0 26625 12 StreamReader 12 StreamReader 0 0 0 1 2131 2133 0 29 2132 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 0 0 0 0 0 363
////////////////////////////////////////////////////////////////////
//       Class : StreamReader
// Description : A class to read sequential binary data directly from
//               an istream.  Its interface is similar to
//               DatagramIterator by design; see also StreamWriter.
////////////////////////////////////////////////////////////////////

2822 13 StreamWrapper 0 26625 13 StreamWrapper 13 StreamWrapper 0 0 0 1 2166 2167 0 1 2168 0 0 2 3 2807 2162 2163 3 2815 2164 2165 0 0 286
////////////////////////////////////////////////////////////////////
//       Class : StreamWrapper
// Description : This class provides a locking wrapper around a
//               combination ostream/istream pointer.
////////////////////////////////////////////////////////////////////

2823 12 StreamWriter 0 26625 12 StreamWriter 12 StreamWriter 0 0 0 1 2169 2171 0 29 2170 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 0 0 0 0 0 550
////////////////////////////////////////////////////////////////////
//       Class : StreamWriter
// Description : A StreamWriter object is used to write sequential
//               binary data directly to an ostream.  Its interface is
//               very similar to Datagram by design; it's primarily
//               intended as a convenience to eliminate the overhead
//               of writing bytes to a Datagram and then writing the
//               Datagram to a stream.
////////////////////////////////////////////////////////////////////

2824 11 TextEncoder 0 141313 11 TextEncoder 11 TextEncoder 0 0 0 1 2200 2237 0 36 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 0 0 0 0 1 2825 676
////////////////////////////////////////////////////////////////////
//       Class : TextEncoder
// Description : This class can be used to convert text between
//               multiple representations, e.g. utf-8 to Unicode.  You
//               may use it as a static class object, passing the
//               encoding each time, or you may create an instance and
//               use that object, which will record the current
//               encoding and retain the current string.
//
//               This class is also a base class of TextNode, which
//               inherits this functionality.
////////////////////////////////////////////////////////////////////

2825 8 Encoding 0 794624 21 TextEncoder::Encoding 21 TextEncoder::Encoding 2824 0 0 0 0 0 0 0 0 0 3 9 E_iso8859 22 TextEncoder::E_iso8859 0 6 E_utf8 19 TextEncoder::E_utf8 1 9 E_unicode 22 TextEncoder::E_unicode 2 0 0

2826 10 TypeHandle 0 141313 10 TypeHandle 10 TypeHandle 0 0 0 1 2238 2262 0 23 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 0 0 0 0 1 2827 1098
////////////////////////////////////////////////////////////////////
//       Class : TypeHandle
// Description : TypeHandle is the identifier used to differentiate
//               C++ class types.  Any C++ classes that inherit from
//               some base class, and must be differentiated at run
//               time, should store a static TypeHandle object that
//               can be queried through a static member function
//               named get_class_type().  Most of the time, it is also
//               desirable to inherit from TypedObject, which provides
//               some virtual functions to return the TypeHandle for a
//               particular instance.
//
//               At its essence, a TypeHandle is simply a unique
//               identifier that is assigned by the TypeRegistry.  The
//               TypeRegistry stores a tree of TypeHandles, so that
//               ancestry of a particular type may be queried, and the
//               type name may be retrieved for run-time display.
////////////////////////////////////////////////////////////////////

2827 11 MemoryClass 0 794624 23 TypeHandle::MemoryClass 23 TypeHandle::MemoryClass 2826 0 0 0 0 0 0 0 0 0 5 12 MC_singleton 24 TypeHandle::MC_singleton 0 8 MC_array 20 TypeHandle::MC_array 1 23 MC_deleted_chain_active 35 TypeHandle::MC_deleted_chain_active 2 25 MC_deleted_chain_inactive 37 TypeHandle::MC_deleted_chain_inactive 3 8 MC_limit 20 TypeHandle::MC_limit 4 0 0

2828 12 TypeRegistry 0 141313 12 TypeRegistry 12 TypeRegistry 0 0 0 0 2279 0 16 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2 3147 3148 0 1 0 2780 0 0 0 0 571
////////////////////////////////////////////////////////////////////
//       Class : TypeRegistry
// Description : The TypeRegistry class maintains all the assigned
//               TypeHandles in a given system.  There should be only
//               one TypeRegistry class during the lifetime of the
//               application.  It will be created on the local heap
//               initially, and it should be migrated to shared memory
//               as soon as shared memory becomes available.
////////////////////////////////////////////////////////////////////

2829 11 TypedObject 0 26625 11 TypedObject 11 TypedObject 0 0 0 0 2282 0 5 2283 2284 2285 2286 2287 0 0 1 3 2780 2280 2281 0 0 3666
////////////////////////////////////////////////////////////////////
//       Class : TypedObject
// Description : This is an abstract class that all classes which
//               use TypeHandle, and also provide virtual functions to
//               support polymorphism, should inherit from.  Each
//               derived class should define get_type(), which should
//               return the specific type of the derived class.
//               Inheriting from this automatically provides support
//               for is_of_type() and is_exact_type().
//               
//               All classes that inherit directly or indirectly from
//               TypedObject should redefine get_type() and
//               force_init_type(), as shown below.  Some classes that
//               do not inherit from TypedObject may still declare
//               TypeHandles for themselves by defining methods called
//               get_class_type() and init_type().  Classes such as
//               these may serve as base classes, but the dynamic type
//               identification system will be limited.  Classes that
//               do not inherit from TypedObject need not define the
//               virtual functions get_type() and force_init_type()
//               (or any other virtual functions).
//               
//               There is a specific layout for defining the
//               overrides from this class.  Keeping the definitions
//               formatted just like these examples will allow
//               someone in the future to use a sed (or similar)
//               script to make global changes, if necessary.  Avoid
//               rearranging the braces or the order of the functions
//               unless you're ready to change them in every file all
//               at once.
//               
//               What follows are some examples that can be used in
//               new classes that you create.
//               
//               @par In the class definition (.h file):
//               @code
//               public:
//                 static TypeHandle get_class_type() {
//                   return _type_handle;
//                 }
//                 static void init_type() {
//                   <<<BaseClassOne>>>::init_type();
//                   <<<BaseClassTwo>>>::init_type();
//                   <<<BaseClassN>>>::init_type();
//                   register_type(_type_handle, "<<<ThisClassStringName>>>",
//                                 <<<BaseClassOne>>>::get_class_type(),
//                                 <<<BaseClassTwo>>>::get_class_type(),
//                                 <<<BaseClassN>>>::get_class_type());
//                 }
//                 virtual TypeHandle get_type() const {
//                   return get_class_type();
//                 }
//                 virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
//               
//               private:
//                 static TypeHandle _type_handle;
//               @endcode
//               
//               @par In the class .cxx file:
//               @code
//               TypeHandle <<<ThisClassStringName>>>::_type_handle;
//               @endcode
//               
//               @par In the class config_<<<PackageName>>>.cxx file:
//               @code
//               ConfigureFn(config_<<<PackageName>>>) {
//                 <<<ClassOne>>>::init_type();
//                 <<<ClassTwo>>>::init_type();
//                 <<<ClassN>>>::init_type();
//               }
//               @endcode
////////////////////////////////////////////////////////////////////

2830 7 fstream 0 141313 7 fstream 7 fstream 0 0 0 1 2288 2290 0 1 2289 0 0 1 0 2795 0 0 0 0 0

2831 8 ifstream 0 141313 8 ifstream 8 ifstream 0 0 0 1 2291 2293 0 1 2292 0 0 1 0 2796 0 0 0 0 0

2832 8 ofstream 0 141313 8 ofstream 8 ofstream 0 0 0 1 2294 2296 0 1 2295 0 0 1 0 2801 0 0 0 0 0

2833 11 MemoryUsage 0 141313 11 MemoryUsage 11 MemoryUsage 0 0 0 0 2317 0 20 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 0 0 1 0 2834 0 0 0 0 539
////////////////////////////////////////////////////////////////////
//       Class : MemoryUsage
// Description : This class is used strictly for debugging purposes,
//               specifically for tracking memory leaks of
//               reference-counted objects: it keeps a record of every
//               such object currently allocated.
//
//               When compiled with NDEBUG set, this entire class does
//               nothing and compiles to nothing.
////////////////////////////////////////////////////////////////////

2834 10 MemoryHook 0 2049 10 MemoryHook 10 MemoryHook 0 0 0 0 0 0 0 0 0 0 0 0 993
////////////////////////////////////////////////////////////////////
//       Class : MemoryHook
// Description : This class provides a wrapper around the various
//               possible malloc schemes Panda might employ.  It also
//               exists to allow the MemoryUsage class in Panda to
//               insert callback hooks to track the size of allocated
//               pointers.
//
//               The PANDA_MALLOC_* and PANDA_FREE_* macros are
//               defined to vector through through this class (except
//               in production builds) to facilitate that.  Every
//               memory allocation call in Panda should therefore use
//               these macros instead of direct calls to malloc or
//               free.  (C++ new and delete operators may be employed
//               for classes which inherit from MemoryBase; otherwise,
//               use the PANDA_MALLOC macros.)
////////////////////////////////////////////////////////////////////

2835 14 ReferenceCount 0 26625 14 ReferenceCount 14 ReferenceCount 0 0 0 0 2321 0 6 2322 2323 2324 2325 2326 2327 0 0 1 3 2780 2319 2320 0 0 425
////////////////////////////////////////////////////////////////////
//       Class : ReferenceCount
// Description : A base class for all things that want to be
//               reference-counted.  ReferenceCount works in
//               conjunction with PointerTo to automatically delete
//               objects when the last pointer to them goes away.
////////////////////////////////////////////////////////////////////

2836 6 Buffer 0 75777 6 Buffer 6 Buffer 0 0 0 0 2321 0 1 2328 0 0 1 0 2835 0 0 0 0 178
////////////////////////////////////////////////////////////////////
//       Class : Buffer
// Description :
////////////////////////////////////////////////////////////////////

2837 25 PStatCollectorForwardBase 0 75777 25 PStatCollectorForwardBase 25 PStatCollectorForwardBase 0 0 0 0 2321 0 1 2336 0 0 1 0 2835 0 0 0 0 542
////////////////////////////////////////////////////////////////////
//       Class : PStatCollectorForwardBase
// Description : This class serves as a cheap forward reference to a
//               PStatCollector, which is defined in the pstatclient
//               module (and is not directly accessible here in the
//               express module).
//
//               This is subclassed as PStatCollectorForward, which
//               defines the actual functionality.
////////////////////////////////////////////////////////////////////

2838 18 NodeReferenceCount 0 43009 18 NodeReferenceCount 18 NodeReferenceCount 0 0 0 0 0 0 5 2337 2338 2339 2340 2341 0 0 1 0 2835 0 0 0 0 983
////////////////////////////////////////////////////////////////////
//       Class : NodeReferenceCount
// Description : This class specializes ReferenceCount to add an
//               additional counter, called node_ref_count, for the
//               purposes of counting the number of times the object
//               is referenced by a "node", whatever that may mean in
//               context.
//
//               The new methods node_ref() and node_unref()
//               automatically increment and decrement the primary
//               reference count as well.  There also exists a
//               NodePointerTo<> class to maintain the node_ref
//               counters automatically.
//
//               See also CachedTypedWritableReferenceCount, which is
//               similar in principle, as well as
//               NodeCachedReferenceCount, which combines both of
//               these.
////////////////////////////////////////////////////////////////////

2839 8 Datagram 0 75777 8 Datagram 8 Datagram 0 0 0 1 2342 2282 0 46 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 0 0 1 0 2829 0 0 0 0 900
////////////////////////////////////////////////////////////////////
//       Class : Datagram
// Description : An ordered list of data elements, formatted in memory
//               for transmission over a socket or writing to a data
//               file.
//
//               Data elements should be added one at a time, in
//               order, to the Datagram.  The nature and contents of
//               the data elements are totally up to the user.  When a
//               Datagram has been transmitted and received, its data
//               elements may be extracted using a DatagramIterator;
//               it is up to the caller to know the correct type of
//               each data element in order.
//
//               A Datagram is itself headerless; it is simply a
//               collection of data elements.
////////////////////////////////////////////////////////////////////

2840 17 DatagramGenerator 0 26625 17 DatagramGenerator 17 DatagramGenerator 0 0 0 0 2389 0 9 2390 2391 2392 2393 2394 2395 2396 2397 2398 0 0 0 0 0 335
////////////////////////////////////////////////////////////////////
//       Class : DatagramGenerator
// Description : This class defines the abstract interace to any
//               source of datagrams, whether it be from a file or
//               from the net.
////////////////////////////////////////////////////////////////////

2841 16 DatagramIterator 0 26625 16 DatagramIterator 16 DatagramIterator 0 0 0 1 2399 2401 0 35 2400 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 0 0 0 0 0 438
////////////////////////////////////////////////////////////////////
//       Class : DatagramIterator
// Description : A class to retrieve the individual data elements
//               previously stored in a Datagram.  Elements may be
//               retrieved one at a time; it is up to the caller to
//               know the correct type and order of each element.
////////////////////////////////////////////////////////////////////

2842 12 DatagramSink 0 26625 12 DatagramSink 12 DatagramSink 0 0 0 0 2436 0 7 2437 2438 2439 2440 2441 2442 2443 0 0 0 0 0 340
////////////////////////////////////////////////////////////////////
//       Class : DatagramSink
// Description : This class defines the abstract interface to sending
//               datagrams to any target, whether it be into a file
//               or across the net
////////////////////////////////////////////////////////////////////

2843 13 ErrorUtilCode 0 532481 13 ErrorUtilCode 13 ErrorUtilCode 0 0 0 0 0 0 0 0 0 0 37 16 EU_http_redirect 16 EU_http_redirect 7 6 EU_eof 6 EU_eof 6 18 EU_network_no_data 18 EU_network_no_data 5 12 EU_write_ram 12 EU_write_ram 4 8 EU_write 8 EU_write 3 5 EU_ok 5 EU_ok 2 10 EU_success 10 EU_success 1 14 EU_error_abort 14 EU_error_abort -1 19 EU_error_file_empty 19 EU_error_file_empty -2 21 EU_error_file_invalid 21 EU_error_file_invalid -3 25 EU_error_invalid_checksum 25 EU_error_invalid_checksum -4 21 EU_error_network_dead 21 EU_error_network_dead -30 28 EU_error_network_unreachable 28 EU_error_network_unreachable -31 29 EU_error_network_disconnected 29 EU_error_network_disconnected -32 24 EU_error_network_timeout 24 EU_error_network_timeout -33 24 EU_error_network_no_data 24 EU_error_network_no_data -34 37 EU_error_network_disconnected_locally 37 EU_error_network_disconnected_locally -40 32 EU_error_network_buffer_overflow 32 EU_error_network_buffer_overflow -41 36 EU_error_network_disk_quota_exceeded 36 EU_error_network_disk_quota_exceeded -42 41 EU_error_network_remote_host_disconnected 41 EU_error_network_remote_host_disconnected -50 33 EU_error_network_remote_host_down 33 EU_error_network_remote_host_down -51 40 EU_error_network_remote_host_unreachable 40 EU_error_network_remote_host_unreachable -52 38 EU_error_network_remote_host_not_found 38 EU_error_network_remote_host_not_found -53 40 EU_error_network_remote_host_no_response 40 EU_error_network_remote_host_no_response -54 27 EU_error_write_out_of_files 27 EU_error_write_out_of_files -60 28 EU_error_write_out_of_memory 28 EU_error_write_out_of_memory -61 32 EU_error_write_sharing_violation 32 EU_error_write_sharing_violation -62 24 EU_error_write_disk_full 24 EU_error_write_disk_full -63 29 EU_error_write_disk_not_found 29 EU_error_write_disk_not_found -64 36 EU_error_write_disk_sector_not_found 36 EU_error_write_disk_sector_not_found -65 25 EU_error_write_disk_fault 25 EU_error_write_disk_fault -66 26 EU_error_write_file_rename 26 EU_error_write_file_rename -67 28 EU_error_http_server_timeout 28 EU_error_http_server_timeout -70 29 EU_error_http_gateway_timeout 29 EU_error_http_gateway_timeout -71 33 EU_error_http_service_unavailable 33 EU_error_http_service_unavailable -72 34 EU_error_http_proxy_authentication 34 EU_error_http_proxy_authentication -73 13 EU_error_zlib 13 EU_error_zlib -80 0 0

2844 19 TypedReferenceCount 0 141313 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 2459 0 1 2458 0 0 2 3 2829 2454 2455 3 2835 2456 2457 0 0 710
////////////////////////////////////////////////////////////////////
//       Class : TypedReferenceCount
// Description : A base class for things which need to inherit from
//               both TypedObject and from ReferenceCount.  It's
//               convenient to define this intermediate base class
//               instead of multiply inheriting from the two classes
//               each time they are needed, so that we can sensibly
//               pass around pointers to things which are both
//               TypedObjects and ReferenceCounters.
//               
//               See also TypedObject for detailed instructions.
////////////////////////////////////////////////////////////////////

2845 13 FileReference 0 141313 13 FileReference 13 FileReference 0 0 0 1 2460 2463 0 2 2461 2462 0 0 1 0 2844 0 0 0 0 354
////////////////////////////////////////////////////////////////////
//       Class : FileReference
// Description : Keeps a reference-counted pointer to a file on disk.
//               As long as the FileReference is held, someone
//               presumably has a use for this file.
////////////////////////////////////////////////////////////////////

2846 7 Ramfile 0 141313 7 Ramfile 7 Ramfile 0 0 0 1 2464 2473 0 8 2465 2466 2467 2468 2469 2470 2471 2472 0 0 0 0 0 271
////////////////////////////////////////////////////////////////////
//       Class : Ramfile
// Description : An in-memory buffer specifically designed for
//               downloading files to memory.
////////////////////////////////////////////////////////////////////

2847 7 HashVal 0 141313 7 HashVal 7 HashVal 0 0 0 1 2474 2503 0 28 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 0 0 0 0 0 292
////////////////////////////////////////////////////////////////////
//       Class : HashVal
// Description : Stores a 128-bit value that represents the hashed
//               contents (typically MD5) of a file or buffer.
////////////////////////////////////////////////////////////////////

2848 19 MemoryUsagePointers 0 26625 19 MemoryUsagePointers 19 MemoryUsagePointers 0 0 0 1 2504 2505 0 9 2506 2507 2508 2509 2510 2511 2512 2513 2514 2 3149 3150 0 0 0 0 1205
// HAVE_PYTHON
////////////////////////////////////////////////////////////////////
//       Class : MemoryUsagePointers
// Description : This is a list of pointers returned by a MemoryUsage
//               object in response to some query.
//
//               Warning: once pointers are stored in a
//               MemoryUsagePointers object, they are
//               reference-counted, and will not be freed until the
//               MemoryUsagePointers object is freed (or clear() is
//               called on the object).  However, they may not even be
//               freed then; pointers may leak once they have been
//               added to this structure.  This is because we don't
//               store enough information in this structure to
//               correctly free the pointers that have been added.
//               Since this is intended primarily as a debugging tool,
//               this is not a major issue.
//
//               This class is just a user interface to talk about
//               pointers stored in a MemoryUsage object.  It doesn't
//               even exist when compiled with NDEBUG.
////////////////////////////////////////////////////////////////////

2849 10 ISubStream 0 141313 10 ISubStream 10 ISubStream 0 0 0 1 2515 2518 0 2 2516 2517 0 0 1 0 2796 0 0 0 0 668
////////////////////////////////////////////////////////////////////
//       Class : ISubStream
// Description : An istream object that presents a subwindow into
//               another istream.  The first character read from this
//               stream will be the "start" character from the source
//               istream; just before the file pointer reaches the
//               "end" character, eof is returned.
//
//               The source stream must be one that we can randomly
//               seek within.  The resulting ISubStream will also
//               support arbitrary seeks.
////////////////////////////////////////////////////////////////////

2850 10 OSubStream 0 141313 10 OSubStream 10 OSubStream 0 0 0 1 2519 2522 0 2 2520 2521 0 0 1 0 2801 0 0 0 0 667
////////////////////////////////////////////////////////////////////
//       Class : OSubStream
// Description : An ostream object that presents a subwindow into
//               another ostream.  The first character written to this
//               stream will be the "start" character in the dest
//               istream; no characters may be written to character
//               "end" or later (unless end is zero).
//
//               The dest stream must be one that we can randomly
//               seek within.  The resulting OSubStream will also
//               support arbitrary seeks.
////////////////////////////////////////////////////////////////////

2851 9 SubStream 0 141313 9 SubStream 9 SubStream 0 0 0 1 2523 2526 0 2 2524 2525 0 0 1 0 2795 0 0 0 0 256
////////////////////////////////////////////////////////////////////
//       Class : SubStream
// Description : Combined ISubStream and OSubStream for bidirectional
//               I/O.
////////////////////////////////////////////////////////////////////

2852 9 Multifile 0 75777 9 Multifile 9 Multifile 0 0 0 1 2527 2321 0 62 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 1 3151 0 1 0 2835 0 0 0 1 2853 218
////////////////////////////////////////////////////////////////////
//       Class : Multifile
// Description : A file that contains a set of files.
////////////////////////////////////////////////////////////////////

2853 10 CertRecord 0 288769 21 Multifile::CertRecord 21 Multifile::CertRecord 2852 0 0 0 2554 0 0 0 0 0 0 0 0

2854 7 Namable 0 141313 7 Namable 7 Namable 0 0 0 1 2591 2599 0 7 2592 2593 2594 2595 2596 2597 2598 0 0 1 0 2780 0 0 0 0 324
////////////////////////////////////////////////////////////////////
//       Class : Namable
// Description : A base class for all things which can have a name.
//               The name is either empty or nonempty, but it is never
//               NULL.
////////////////////////////////////////////////////////////////////

2855 11 SubfileInfo 0 141313 11 SubfileInfo 11 SubfileInfo 0 0 0 1 2600 2608 0 7 2601 2602 2603 2604 2605 2606 2607 0 0 0 0 0 418
////////////////////////////////////////////////////////////////////
//       Class : SubfileInfo
// Description : This class records a particular byte sub-range within
//               an existing file on disk.  Generally, the filename is
//               understood as a physical file on disk, and not to be
//               looked up via the vfs.
////////////////////////////////////////////////////////////////////

2856 11 VirtualFile 0 141313 11 VirtualFile 11 VirtualFile 0 0 0 0 2638 0 29 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 0 0 1 0 2844 0 0 0 0 278
////////////////////////////////////////////////////////////////////
//       Class : VirtualFile
// Description : The abstract base class for a file or directory
//               within the VirtualFileSystem.
////////////////////////////////////////////////////////////////////

2857 20 VirtualFileComposite 0 141313 20 VirtualFileComposite 20 VirtualFileComposite 0 0 0 0 2640 0 1 2639 0 0 1 0 2856 0 0 0 0 450
////////////////////////////////////////////////////////////////////
//       Class : VirtualFileComposite
// Description : A composite directory within the VirtualFileSystem:
//               this maps to more than one directory on different
//               mount points.  The resulting directory appears to be
//               the union of all the individual simple directories.
////////////////////////////////////////////////////////////////////

2858 16 VirtualFileMount 0 75777 16 VirtualFileMount 16 VirtualFileMount 0 0 0 0 2459 0 6 2641 2642 2643 2644 2645 2646 0 0 1 0 2844 0 0 0 0 365
////////////////////////////////////////////////////////////////////
//       Class : VirtualFileMount
// Description : The abstract base class for a mount definition used
//               within a VirtualFileSystem.  Normally users don't
//               need to monkey with this class directly.
////////////////////////////////////////////////////////////////////

2859 25 VirtualFileMountMultifile 0 75777 25 VirtualFileMountMultifile 25 VirtualFileMountMultifile 0 0 0 1 2647 2459 0 2 2648 2649 0 0 1 0 2858 0 0 0 0 270
////////////////////////////////////////////////////////////////////
//       Class : VirtualFileMountMultifile
// Description : Maps a Multifile's contents into the
//               VirtualFileSystem.
////////////////////////////////////////////////////////////////////

2860 23 VirtualFileMountRamdisk 0 141313 23 VirtualFileMountRamdisk 23 VirtualFileMountRamdisk 0 0 0 1 2650 2652 0 1 2651 0 0 1 0 2858 0 0 0 0 659
////////////////////////////////////////////////////////////////////
//       Class : VirtualFileMountRamdisk
// Description : Simulates an actual directory on disk with in-memory
//               storage.  This is useful mainly for performing high
//               level functions that expect disk I/O without actually
//               writing files to disk.  Naturally, there are
//               significant limits to the size of the files that may
//               be written with this system; and "files" written here
//               are not automatically persistent between sessions.
////////////////////////////////////////////////////////////////////

2861 22 VirtualFileMountSystem 0 141313 22 VirtualFileMountSystem 22 VirtualFileMountSystem 0 0 0 1 2653 2656 0 2 2654 2655 0 0 1 0 2858 0 0 0 0 267
////////////////////////////////////////////////////////////////////
//       Class : VirtualFileMountSystem
// Description : Maps an actual OS directory into the
//               VirtualFileSystem.
////////////////////////////////////////////////////////////////////

2862 17 VirtualFileSimple 0 141313 17 VirtualFileSimple 17 VirtualFileSimple 0 0 0 0 2660 0 3 2657 2658 2659 0 0 1 0 2856 0 0 0 0 407
////////////////////////////////////////////////////////////////////
//       Class : VirtualFileSimple
// Description : A simple file or directory within the
//               VirtualFileSystem: this maps to exactly one file on
//               one mount point.  Most directories, and all regular
//               files, are of this kind.
////////////////////////////////////////////////////////////////////

2863 13 TemporaryFile 0 75777 13 TemporaryFile 13 TemporaryFile 0 0 0 1 2661 2463 0 1 2662 0 0 1 0 2845 0 0 0 0 426
////////////////////////////////////////////////////////////////////
//       Class : TemporaryFile
// Description : This is a special kind of FileReference class that
//               automatically deletes the file in question when it is
//               deleted.  It is not responsible for creating,
//               opening, or closing the file, however.
////////////////////////////////////////////////////////////////////

2864 17 IDecompressStream 0 141313 17 IDecompressStream 17 IDecompressStream 0 0 0 1 2663 2666 0 2 2664 2665 0 0 1 0 2796 0 0 0 0 589
////////////////////////////////////////////////////////////////////
//       Class : IDecompressStream
// Description : An input stream object that uses zlib to decompress
//               (inflate) the input from another source stream
//               on-the-fly.
//
//               Attach an IDecompressStream to an existing istream that
//               provides compressed data, and read the corresponding
//               uncompressed data from the IDecompressStream.
//
//               Seeking is not supported.
////////////////////////////////////////////////////////////////////

2865 15 OCompressStream 0 141313 15 OCompressStream 15 OCompressStream 0 0 0 1 2667 2670 0 2 2668 2669 0 0 1 0 2801 0 0 0 0 575
////////////////////////////////////////////////////////////////////
//       Class : OCompressStream
// Description : An input stream object that uses zlib to compress
//               (deflate) data to another destination stream
//               on-the-fly.
//
//               Attach an OCompressStream to an existing ostream that will
//               accept compressed data, and write your uncompressed
//               source data to the OCompressStream.
//
//               Seeking is not supported.
////////////////////////////////////////////////////////////////////

2866 15 VirtualFileList 0 75777 15 VirtualFileList 15 VirtualFileList 0 0 0 0 2321 0 6 2671 2672 2673 2674 2675 2676 1 3152 0 1 0 2835 0 0 0 0 275
////////////////////////////////////////////////////////////////////
//       Class : VirtualFileList
// Description : A list of VirtualFiles, as returned by 
//               VirtualFile::scan_directory().
////////////////////////////////////////////////////////////////////

2867 17 VirtualFileSystem 0 26625 17 VirtualFileSystem 17 VirtualFileSystem 0 0 0 1 2677 2678 0 37 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 1 3153 0 0 0 1 2868 621
////////////////////////////////////////////////////////////////////
//       Class : VirtualFileSystem
// Description : A hierarchy of directories and files that appears to
//               be one continuous file system, even though the files
//               may originate from several different sources that may
//               not be related to the actual OS's file system.
//
//               For instance, a VirtualFileSystem can transparently
//               mount one or more Multifiles as their own
//               subdirectory hierarchies.
////////////////////////////////////////////////////////////////////

2868 10 MountFlags 0 794624 29 VirtualFileSystem::MountFlags 29 VirtualFileSystem::MountFlags 2867 0 0 0 0 0 0 0 0 0 1 12 MF_read_only 31 VirtualFileSystem::MF_read_only 2 0 0

2869 9 TrueClock 0 43009 9 TrueClock 9 TrueClock 0 0 0 0 0 0 6 2716 2717 2718 2719 2720 2721 0 0 0 0 0 773
////////////////////////////////////////////////////////////////////
//       Class : TrueClock
// Description : An interface to whatever real-time clock we might
//               have available in the current environment.  There is
//               only one TrueClock in existence, and it constructs
//               itself.
//
//               The TrueClock returns elapsed real time in seconds
//               since some undefined epoch.  Since it is not defined
//               at what time precisely the clock indicates zero, this
//               value can only be meaningfully used to measure
//               elapsed time, by sampling it at two different times
//               and subtracting.
////////////////////////////////////////////////////////////////////

2870 9 Patchfile 0 26625 9 Patchfile 9 Patchfile 0 0 0 1 2722 2723 0 14 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 0 0 0 0 0 181
////////////////////////////////////////////////////////////////////
//       Class : Patchfile
// Description :
////////////////////////////////////////////////////////////////////

2871 12 ProfileTimer 0 26625 12 ProfileTimer 12 ProfileTimer 0 0 0 1 2739 2740 0 9 2741 2742 2743 2744 2745 2746 2747 2748 2749 0 0 0 0 0 713
/*
    ProfileTimer

    HowTo:
      Create a ProfileTimer and hold onto it.
      Call init() whenever you like (the timer doesn't
        start yet).
      Call on() to start the timer.
      While the timer is on, call mark() at each point of interest,
        in the code you are timing.
      You can turn the timer off() and on() to skip things you
        don't want to time.
      When your timing is finished, call printTo() to see the
        results (e.g. myTimer.printTo(cerr)).

    Notes:
      You should be able to time things down to the millisecond
      well enough, but if you call on() and off() within micro-
      seconds of each other, I don't think you'll get very good
      results.
*/

2872 17 WeakPointerToVoid 0 43009 17 WeakPointerToVoid 17 WeakPointerToVoid 0 0 0 0 0 0 2 2750 2751 0 0 1 0 2779 0 0 0 0 362
////////////////////////////////////////////////////////////////////
//       Class : WeakPointerToVoid
// Description : This is the specialization of PointerToVoid for weak
//               pointers.  It needs an additional flag to indicate
//               that the pointer has been deleted.
////////////////////////////////////////////////////////////////////

2873 15 WindowsRegistry 0 141313 15 WindowsRegistry 15 WindowsRegistry 0 0 0 0 2757 0 5 2752 2753 2754 2755 2756 0 0 0 0 2 2874 2875 484
////////////////////////////////////////////////////////////////////
//       Class : WindowsRegistry
// Description : This class provides a hook to Python to read and
//               write strings and integers to the windows registry.
//               It automatically converts strings from utf-8 encoding
//               and stores them in Unicode (and conversely reconverts
//               them on retrieval).
////////////////////////////////////////////////////////////////////

2874 8 RegLevel 0 794624 25 WindowsRegistry::RegLevel 25 WindowsRegistry::RegLevel 2873 0 0 0 0 0 0 0 0 0 2 10 rl_machine 27 WindowsRegistry::rl_machine 0 7 rl_user 24 WindowsRegistry::rl_user 1 0 0

2875 4 Type 0 794624 21 WindowsRegistry::Type 21 WindowsRegistry::Type 2873 0 0 0 0 0 0 0 0 0 3 6 T_none 23 WindowsRegistry::T_none 0 5 T_int 22 WindowsRegistry::T_int 1 8 T_string 25 WindowsRegistry::T_string 2 0 0

2876 25 ConfigDeclaration const * 0 8576 25 ConfigDeclaration const * 25 ConfigDeclaration const * 0 0 2877 0 0 0 0 0 0 0 0 0 0

2877 23 ConfigDeclaration const 0 8832 23 ConfigDeclaration const 23 ConfigDeclaration const 0 0 2758 0 0 0 0 0 0 0 0 0 0

2878 12 ConfigPage * 0 8576 12 ConfigPage * 12 ConfigPage * 0 0 2762 0 0 0 0 0 0 0 0 0 0

2879 20 ConfigVariableCore * 0 8576 20 ConfigVariableCore * 20 ConfigVariableCore * 0 0 2767 0 0 0 0 0 0 0 0 0 0

2880 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0

2881 19 ConfigDeclaration * 0 8576 19 ConfigDeclaration * 19 ConfigDeclaration * 0 0 2758 0 0 0 0 0 0 0 0 0 0

2882 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0

2883 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0

2884 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0

2885 7 __int64 0 8226 7 __int64 7 __int64 0 8 0 0 0 0 0 0 0 0 0 0 0

2886 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0

2887 9 ostream * 0 8576 9 ostream * 9 ostream * 0 0 2801 0 0 0 0 0 0 0 0 0 0

2888 18 ConfigPage const * 0 8576 18 ConfigPage const * 18 ConfigPage const * 0 0 2889 0 0 0 0 0 0 0 0 0 0

2889 16 ConfigPage const 0 8832 16 ConfigPage const 16 ConfigPage const 0 0 2762 0 0 0 0 0 0 0 0 0 0

2890 9 istream * 0 8576 9 istream * 9 istream * 0 0 2796 0 0 0 0 0 0 0 0 0 0

2891 25 ConfigPageManager const * 0 8576 25 ConfigPageManager const * 25 ConfigPageManager const * 0 0 2892 0 0 0 0 0 0 0 0 0 0

2892 23 ConfigPageManager const 0 8832 23 ConfigPageManager const 23 ConfigPageManager const 0 0 2763 0 0 0 0 0 0 0 0 0 0

2893 19 ConfigPageManager * 0 8576 19 ConfigPageManager * 19 ConfigPageManager * 0 0 2763 0 0 0 0 0 0 0 0 0 0

2894 13 DSearchPath * 0 8576 13 DSearchPath * 13 DSearchPath * 0 0 2791 0 0 0 0 0 0 0 0 0 0

2895 16 ConfigVariable * 0 8576 16 ConfigVariable * 16 ConfigVariable * 0 0 2764 0 0 0 0 0 0 0 0 0 0

2896 22 ConfigVariable const * 0 8576 22 ConfigVariable const * 22 ConfigVariable const * 0 0 2897 0 0 0 0 0 0 0 0 0 0

2897 20 ConfigVariable const 0 8832 20 ConfigVariable const 20 ConfigVariable const 0 0 2764 0 0 0 0 0 0 0 0 0 0

2898 26 ConfigVariableBase const * 0 8576 26 ConfigVariableBase const * 26 ConfigVariableBase const * 0 0 2899 0 0 0 0 0 0 0 0 0 0

2899 24 ConfigVariableBase const 0 8832 24 ConfigVariableBase const 24 ConfigVariableBase const 0 0 2765 0 0 0 0 0 0 0 0 0 0

2900 20 ConfigVariableBase * 0 8576 20 ConfigVariableBase * 20 ConfigVariableBase * 0 0 2765 0 0 0 0 0 0 0 0 0 0

2901 20 ConfigVariableBool * 0 8576 20 ConfigVariableBool * 20 ConfigVariableBool * 0 0 2766 0 0 0 0 0 0 0 0 0 0

2902 26 ConfigVariableBool const * 0 8576 26 ConfigVariableBool const * 26 ConfigVariableBool const * 0 0 2903 0 0 0 0 0 0 0 0 0 0

2903 24 ConfigVariableBool const 0 8832 24 ConfigVariableBool const 24 ConfigVariableBool const 0 0 2766 0 0 0 0 0 0 0 0 0 0

2904 26 ConfigVariableCore const * 0 8576 26 ConfigVariableCore const * 26 ConfigVariableCore const * 0 0 2905 0 0 0 0 0 0 0 0 0 0

2905 24 ConfigVariableCore const 0 8832 24 ConfigVariableCore const 24 ConfigVariableCore const 0 0 2767 0 0 0 0 0 0 0 0 0 0

2906 22 ConfigVariableDouble * 0 8576 22 ConfigVariableDouble * 22 ConfigVariableDouble * 0 0 2768 0 0 0 0 0 0 0 0 0 0

2907 28 ConfigVariableDouble const * 0 8576 28 ConfigVariableDouble const * 28 ConfigVariableDouble const * 0 0 2908 0 0 0 0 0 0 0 0 0 0

2908 26 ConfigVariableDouble const 0 8832 26 ConfigVariableDouble const 26 ConfigVariableDouble const 0 0 2768 0 0 0 0 0 0 0 0 0 0

2909 24 ConfigVariableFilename * 0 8576 24 ConfigVariableFilename * 24 ConfigVariableFilename * 0 0 2769 0 0 0 0 0 0 0 0 0 0

2910 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 2911 0 0 0 0 0 0 0 0 0 0

2911 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 2802 0 0 0 0 0 0 0 0 0 0

2912 30 ConfigVariableFilename const * 0 8576 30 ConfigVariableFilename const * 30 ConfigVariableFilename const * 0 0 2913 0 0 0 0 0 0 0 0 0 0

2913 28 ConfigVariableFilename const 0 8832 28 ConfigVariableFilename const 28 ConfigVariableFilename const 0 0 2769 0 0 0 0 0 0 0 0 0 0

2914 12 unsigned int 0 8198 12 unsigned int 12 unsigned int 0 1 0 0 0 0 0 0 0 0 0 0 0

2915 4 char 0 8194 4 char 4 char 0 5 0 0 0 0 0 0 0 0 0 0 0

2916 10 Filename * 0 8576 10 Filename * 10 Filename * 0 0 2802 0 0 0 0 0 0 0 0 0 0

2917 19 ConfigVariableInt * 0 8576 19 ConfigVariableInt * 19 ConfigVariableInt * 0 0 2770 0 0 0 0 0 0 0 0 0 0

2918 25 ConfigVariableInt const * 0 8576 25 ConfigVariableInt const * 25 ConfigVariableInt const * 0 0 2919 0 0 0 0 0 0 0 0 0 0

2919 23 ConfigVariableInt const 0 8832 23 ConfigVariableInt const 23 ConfigVariableInt const 0 0 2770 0 0 0 0 0 0 0 0 0 0

2920 21 ConfigVariableInt64 * 0 8576 21 ConfigVariableInt64 * 21 ConfigVariableInt64 * 0 0 2771 0 0 0 0 0 0 0 0 0 0

2921 27 ConfigVariableInt64 const * 0 8576 27 ConfigVariableInt64 const * 27 ConfigVariableInt64 const * 0 0 2922 0 0 0 0 0 0 0 0 0 0

2922 25 ConfigVariableInt64 const 0 8832 25 ConfigVariableInt64 const 25 ConfigVariableInt64 const 0 0 2771 0 0 0 0 0 0 0 0 0 0

2923 20 ConfigVariableList * 0 8576 20 ConfigVariableList * 20 ConfigVariableList * 0 0 2772 0 0 0 0 0 0 0 0 0 0

2924 26 ConfigVariableList const * 0 8576 26 ConfigVariableList const * 26 ConfigVariableList const * 0 0 2925 0 0 0 0 0 0 0 0 0 0

2925 24 ConfigVariableList const 0 8832 24 ConfigVariableList const 24 ConfigVariableList const 0 0 2772 0 0 0 0 0 0 0 0 0 0

2926 23 ConfigVariableManager * 0 8576 23 ConfigVariableManager * 23 ConfigVariableManager * 0 0 2773 0 0 0 0 0 0 0 0 0 0

2927 29 ConfigVariableManager const * 0 8576 29 ConfigVariableManager const * 29 ConfigVariableManager const * 0 0 2928 0 0 0 0 0 0 0 0 0 0

2928 27 ConfigVariableManager const 0 8832 27 ConfigVariableManager const 27 ConfigVariableManager const 0 0 2773 0 0 0 0 0 0 0 0 0 0

2929 19 DSearchPath const * 0 8576 19 DSearchPath const * 19 DSearchPath const * 0 0 2930 0 0 0 0 0 0 0 0 0 0

2930 17 DSearchPath const 0 8832 17 DSearchPath const 17 DSearchPath const 0 0 2791 0 0 0 0 0 0 0 0 0 0

2931 26 ConfigVariableSearchPath * 0 8576 26 ConfigVariableSearchPath * 26 ConfigVariableSearchPath * 0 0 2774 0 0 0 0 0 0 0 0 0 0

2932 32 ConfigVariableSearchPath const * 0 8576 32 ConfigVariableSearchPath const * 32 ConfigVariableSearchPath const * 0 0 2933 0 0 0 0 0 0 0 0 0 0

2933 30 ConfigVariableSearchPath const 0 8832 30 ConfigVariableSearchPath const 30 ConfigVariableSearchPath const 0 0 2774 0 0 0 0 0 0 0 0 0 0

2934 9 Results * 0 8576 22 DSearchPath::Results * 22 DSearchPath::Results * 0 0 2792 0 0 0 0 0 0 0 0 0 0

2935 22 ConfigVariableString * 0 8576 22 ConfigVariableString * 22 ConfigVariableString * 0 0 2775 0 0 0 0 0 0 0 0 0 0

2936 28 ConfigVariableString const * 0 8576 28 ConfigVariableString const * 28 ConfigVariableString const * 0 0 2937 0 0 0 0 0 0 0 0 0 0

2937 26 ConfigVariableString const 0 8832 26 ConfigVariableString const 26 ConfigVariableString const 0 0 2775 0 0 0 0 0 0 0 0 0 0

2938 37 ConstPointerToArray< double > const * 0 8576 37 ConstPointerToArray< double > const * 37 ConstPointerToArray< double > const * 0 0 2939 0 0 0 0 0 0 0 0 0 0

2939 35 ConstPointerToArray< double > const 0 8832 35 ConstPointerToArray< double > const 35 ConstPointerToArray< double > const 0 0 2776 0 0 0 0 0 0 0 0 0 0

2940 31 ConstPointerToArray< double > * 0 8576 31 ConstPointerToArray< double > * 31 ConstPointerToArray< double > * 0 0 2776 0 0 0 0 0 0 0 0 0 0

2941 32 PointerToArray< double > const * 0 8576 32 PointerToArray< double > const * 32 PointerToArray< double > const * 0 0 2942 0 0 0 0 0 0 0 0 0 0

2942 30 PointerToArray< double > const 0 8832 30 PointerToArray< double > const 30 PointerToArray< double > const 0 0 2817 0 0 0 0 0 0 0 0 0 0

2943 10 PyObject * 0 8576 10 PyObject * 10 PyObject * 0 0 2944 0 0 0 0 0 0 0 0 0 0

2944 8 PyObject 0 2048 8 PyObject 8 PyObject 0 0 0 0 0 0 0 0 0 0 0 0 0

2945 11 Py_buffer * 0 8576 11 Py_buffer * 11 Py_buffer * 0 0 2946 0 0 0 0 0 0 0 0 0 0

2946 9 Py_buffer 0 1024 9 Py_buffer 9 Py_buffer 0 0 0 0 0 0 0 0 0 0 0 0 0

2947 51 PointerToBase< ReferenceCountedVector< double > > * 0 8576 51 PointerToBase< ReferenceCountedVector< double > > * 51 PointerToBase< ReferenceCountedVector< double > > * 0 0 2778 0 0 0 0 0 0 0 0 0 0

2948 57 PointerToBase< ReferenceCountedVector< double > > const * 0 8576 57 PointerToBase< ReferenceCountedVector< double > > const * 57 PointerToBase< ReferenceCountedVector< double > > const * 0 0 2949 0 0 0 0 0 0 0 0 0 0

2949 55 PointerToBase< ReferenceCountedVector< double > > const 0 8832 55 PointerToBase< ReferenceCountedVector< double > > const 55 PointerToBase< ReferenceCountedVector< double > > const 0 0 2778 0 0 0 0 0 0 0 0 0 0

2950 21 PointerToVoid const * 0 8576 21 PointerToVoid const * 21 PointerToVoid const * 0 0 2951 0 0 0 0 0 0 0 0 0 0

2951 19 PointerToVoid const 0 8832 19 PointerToVoid const 19 PointerToVoid const 0 0 2779 0 0 0 0 0 0 0 0 0 0

2952 36 ConstPointerToArray< float > const * 0 8576 36 ConstPointerToArray< float > const * 36 ConstPointerToArray< float > const * 0 0 2953 0 0 0 0 0 0 0 0 0 0

2953 34 ConstPointerToArray< float > const 0 8832 34 ConstPointerToArray< float > const 34 ConstPointerToArray< float > const 0 0 2781 0 0 0 0 0 0 0 0 0 0

2954 30 ConstPointerToArray< float > * 0 8576 30 ConstPointerToArray< float > * 30 ConstPointerToArray< float > * 0 0 2781 0 0 0 0 0 0 0 0 0 0

2955 31 PointerToArray< float > const * 0 8576 31 PointerToArray< float > const * 31 PointerToArray< float > const * 0 0 2956 0 0 0 0 0 0 0 0 0 0

2956 29 PointerToArray< float > const 0 8832 29 PointerToArray< float > const 29 PointerToArray< float > const 0 0 2818 0 0 0 0 0 0 0 0 0 0

2957 5 float 0 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0

2958 50 PointerToBase< ReferenceCountedVector< float > > * 0 8576 50 PointerToBase< ReferenceCountedVector< float > > * 50 PointerToBase< ReferenceCountedVector< float > > * 0 0 2783 0 0 0 0 0 0 0 0 0 0

2959 56 PointerToBase< ReferenceCountedVector< float > > const * 0 8576 56 PointerToBase< ReferenceCountedVector< float > > const * 56 PointerToBase< ReferenceCountedVector< float > > const * 0 0 2960 0 0 0 0 0 0 0 0 0 0

2960 54 PointerToBase< ReferenceCountedVector< float > > const 0 8832 54 PointerToBase< ReferenceCountedVector< float > > const 54 PointerToBase< ReferenceCountedVector< float > > const 0 0 2783 0 0 0 0 0 0 0 0 0 0

2961 34 ConstPointerToArray< int > const * 0 8576 34 ConstPointerToArray< int > const * 34 ConstPointerToArray< int > const * 0 0 2962 0 0 0 0 0 0 0 0 0 0

2962 32 ConstPointerToArray< int > const 0 8832 32 ConstPointerToArray< int > const 32 ConstPointerToArray< int > const 0 0 2784 0 0 0 0 0 0 0 0 0 0

2963 28 ConstPointerToArray< int > * 0 8576 28 ConstPointerToArray< int > * 28 ConstPointerToArray< int > * 0 0 2784 0 0 0 0 0 0 0 0 0 0

2964 29 PointerToArray< int > const * 0 8576 29 PointerToArray< int > const * 29 PointerToArray< int > const * 0 0 2965 0 0 0 0 0 0 0 0 0 0

2965 27 PointerToArray< int > const 0 8832 27 PointerToArray< int > const 27 PointerToArray< int > const 0 0 2819 0 0 0 0 0 0 0 0 0 0

2966 48 PointerToBase< ReferenceCountedVector< int > > * 0 8576 48 PointerToBase< ReferenceCountedVector< int > > * 48 PointerToBase< ReferenceCountedVector< int > > * 0 0 2786 0 0 0 0 0 0 0 0 0 0

2967 54 PointerToBase< ReferenceCountedVector< int > > const * 0 8576 54 PointerToBase< ReferenceCountedVector< int > > const * 54 PointerToBase< ReferenceCountedVector< int > > const * 0 0 2968 0 0 0 0 0 0 0 0 0 0

2968 52 PointerToBase< ReferenceCountedVector< int > > const 0 8832 52 PointerToBase< ReferenceCountedVector< int > > const 52 PointerToBase< ReferenceCountedVector< int > > const 0 0 2786 0 0 0 0 0 0 0 0 0 0

2969 44 ConstPointerToArray< unsigned char > const * 0 8576 44 ConstPointerToArray< unsigned char > const * 44 ConstPointerToArray< unsigned char > const * 0 0 2970 0 0 0 0 0 0 0 0 0 0

2970 42 ConstPointerToArray< unsigned char > const 0 8832 42 ConstPointerToArray< unsigned char > const 42 ConstPointerToArray< unsigned char > const 0 0 2787 0 0 0 0 0 0 0 0 0 0

2971 38 ConstPointerToArray< unsigned char > * 0 8576 38 ConstPointerToArray< unsigned char > * 38 ConstPointerToArray< unsigned char > * 0 0 2787 0 0 0 0 0 0 0 0 0 0

2972 39 PointerToArray< unsigned char > const * 0 8576 39 PointerToArray< unsigned char > const * 39 PointerToArray< unsigned char > const * 0 0 2973 0 0 0 0 0 0 0 0 0 0

2973 37 PointerToArray< unsigned char > const 0 8832 37 PointerToArray< unsigned char > const 37 PointerToArray< unsigned char > const 0 0 2820 0 0 0 0 0 0 0 0 0 0

2974 13 unsigned char 0 8198 13 unsigned char 13 unsigned char 0 5 0 0 0 0 0 0 0 0 0 0 0

2975 58 PointerToBase< ReferenceCountedVector< unsigned char > > * 0 8576 58 PointerToBase< ReferenceCountedVector< unsigned char > > * 58 PointerToBase< ReferenceCountedVector< unsigned char > > * 0 0 2789 0 0 0 0 0 0 0 0 0 0

2976 64 PointerToBase< ReferenceCountedVector< unsigned char > > const * 0 8576 64 PointerToBase< ReferenceCountedVector< unsigned char > > const * 64 PointerToBase< ReferenceCountedVector< unsigned char > > const * 0 0 2977 0 0 0 0 0 0 0 0 0 0

2977 62 PointerToBase< ReferenceCountedVector< unsigned char > > const 0 8832 62 PointerToBase< ReferenceCountedVector< unsigned char > > const 62 PointerToBase< ReferenceCountedVector< unsigned char > > const 0 0 2789 0 0 0 0 0 0 0 0 0 0

2978 15 Results const * 0 8576 28 DSearchPath::Results const * 28 DSearchPath::Results const * 0 0 2979 0 0 0 0 0 0 0 0 0 0

2979 13 Results const 0 8832 26 DSearchPath::Results const 26 DSearchPath::Results const 0 0 2792 0 0 0 0 0 0 0 0 0 0

2980 12 FileStream * 0 8576 12 FileStream * 12 FileStream * 0 0 2794 0 0 0 0 0 0 0 0 0 0

2981 10 iostream * 0 8576 10 iostream * 10 iostream * 0 0 2795 0 0 0 0 0 0 0 0 0 0

2982 17 unsigned long int 0 8214 17 unsigned long int 17 unsigned long int 0 1 0 0 0 0 0 0 0 0 0 0 0

2983 8 long int 0 8210 8 long int 8 long int 0 1 0 0 0 0 0 0 0 0 0 0 0

2984 5 ios * 0 8576 5 ios * 5 ios * 0 0 2797 0 0 0 0 0 0 0 0 0 0

2985 11 ios const * 0 8576 11 ios const * 11 ios const * 0 0 2986 0 0 0 0 0 0 0 0 0 0

2986 9 ios const 0 8832 9 ios const 9 ios const 0 0 2797 0 0 0 0 0 0 0 0 0 0

2987 32 vector< basic_string< char > > * 0 8576 32 vector< basic_string< char > > * 32 vector< basic_string< char > > * 0 0 2988 0 0 0 0 0 0 0 0 0 0

2988 13 vector_string 0 2048 30 vector< basic_string< char > > 30 vector< basic_string< char > > 0 0 0 0 0 0 0 0 0 0 0 0 0

2989 13 IFileStream * 0 8576 13 IFileStream * 13 IFileStream * 0 0 2806 0 0 0 0 0 0 0 0 0 0

2990 10 ifstream * 0 8576 10 ifstream * 10 ifstream * 0 0 2831 0 0 0 0 0 0 0 0 0 0

2991 13 OFileStream * 0 8576 13 OFileStream * 13 OFileStream * 0 0 2814 0 0 0 0 0 0 0 0 0 0

2992 10 ofstream * 0 8576 10 ofstream * 10 ofstream * 0 0 2832 0 0 0 0 0 0 0 0 0 0

2993 9 fstream * 0 8576 9 fstream * 9 fstream * 0 0 2830 0 0 0 0 0 0 0 0 0 0

2994 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 2826 0 0 0 0 0 0 0 0 0 0

2995 19 GlobPattern const * 0 8576 19 GlobPattern const * 19 GlobPattern const * 0 0 2996 0 0 0 0 0 0 0 0 0 0

2996 17 GlobPattern const 0 8832 17 GlobPattern const 17 GlobPattern const 0 0 2804 0 0 0 0 0 0 0 0 0 0

2997 13 GlobPattern * 0 8576 13 GlobPattern * 13 GlobPattern * 0 0 2804 0 0 0 0 0 0 0 0 0 0

2998 16 IDecryptStream * 0 8576 16 IDecryptStream * 16 IDecryptStream * 0 0 2805 0 0 0 0 0 0 0 0 0 0

2999 22 IDecryptStream const * 0 8576 22 IDecryptStream const * 22 IDecryptStream const * 0 0 3000 0 0 0 0 0 0 0 0 0 0

3000 20 IDecryptStream const 0 8832 20 IDecryptStream const 20 IDecryptStream const 0 0 2805 0 0 0 0 0 0 0 0 0 0

3001 16 IStreamWrapper * 0 8576 16 IStreamWrapper * 16 IStreamWrapper * 0 0 2807 0 0 0 0 0 0 0 0 0 0

3002 22 IStreamWrapper const * 0 8576 22 IStreamWrapper const * 22 IStreamWrapper const * 0 0 3003 0 0 0 0 0 0 0 0 0 0

3003 20 IStreamWrapper const 0 8832 20 IStreamWrapper const 20 IStreamWrapper const 0 0 2807 0 0 0 0 0 0 0 0 0 0

3004 19 StreamWrapperBase * 0 8576 19 StreamWrapperBase * 19 StreamWrapperBase * 0 0 2808 0 0 0 0 0 0 0 0 0 0

3005 8 Notify * 0 8576 8 Notify * 8 Notify * 0 0 2810 0 0 0 0 0 0 0 0 0 0

3006 14 Notify const * 0 8576 14 Notify const * 14 Notify const * 0 0 3007 0 0 0 0 0 0 0 0 0 0

3007 12 Notify const 0 8832 12 Notify const 12 Notify const 0 0 2810 0 0 0 0 0 0 0 0 0 0

3008 16 NotifyCategory * 0 8576 16 NotifyCategory * 16 NotifyCategory * 0 0 2811 0 0 0 0 0 0 0 0 0 0

3009 22 NotifyCategory const * 0 8576 22 NotifyCategory const * 22 NotifyCategory const * 0 0 3010 0 0 0 0 0 0 0 0 0 0

3010 20 NotifyCategory const 0 8832 20 NotifyCategory const 20 NotifyCategory const 0 0 2811 0 0 0 0 0 0 0 0 0 0

3011 12 MemoryBase * 0 8576 12 MemoryBase * 12 MemoryBase * 0 0 2780 0 0 0 0 0 0 0 0 0 0

3012 13 ConfigFlags * 0 8576 13 ConfigFlags * 13 ConfigFlags * 0 0 2759 0 0 0 0 0 0 0 0 0 0

3013 16 OEncryptStream * 0 8576 16 OEncryptStream * 16 OEncryptStream * 0 0 2813 0 0 0 0 0 0 0 0 0 0

3014 16 OStreamWrapper * 0 8576 16 OStreamWrapper * 16 OStreamWrapper * 0 0 2815 0 0 0 0 0 0 0 0 0 0

3015 22 OStreamWrapper const * 0 8576 22 OStreamWrapper const * 22 OStreamWrapper const * 0 0 3016 0 0 0 0 0 0 0 0 0 0

3016 20 OStreamWrapper const 0 8832 20 OStreamWrapper const 20 OStreamWrapper const 0 0 2815 0 0 0 0 0 0 0 0 0 0

3017 19 PandaSystem const * 0 8576 19 PandaSystem const * 19 PandaSystem const * 0 0 3018 0 0 0 0 0 0 0 0 0 0

3018 17 PandaSystem const 0 8832 17 PandaSystem const 17 PandaSystem const 0 0 2816 0 0 0 0 0 0 0 0 0 0

3019 13 PandaSystem * 0 8576 13 PandaSystem * 13 PandaSystem * 0 0 2816 0 0 0 0 0 0 0 0 0 0

3020 26 PointerToArray< double > * 0 8576 26 PointerToArray< double > * 26 PointerToArray< double > * 0 0 2817 0 0 0 0 0 0 0 0 0 0

3021 25 PointerToArray< float > * 0 8576 25 PointerToArray< float > * 25 PointerToArray< float > * 0 0 2818 0 0 0 0 0 0 0 0 0 0

3022 23 PointerToArray< int > * 0 8576 23 PointerToArray< int > * 23 PointerToArray< int > * 0 0 2819 0 0 0 0 0 0 0 0 0 0

3023 33 PointerToArray< unsigned char > * 0 8576 33 PointerToArray< unsigned char > * 33 PointerToArray< unsigned char > * 0 0 2820 0 0 0 0 0 0 0 0 0 0

3024 20 StreamReader const * 0 8576 20 StreamReader const * 20 StreamReader const * 0 0 3025 0 0 0 0 0 0 0 0 0 0

3025 18 StreamReader const 0 8832 18 StreamReader const 18 StreamReader const 0 0 2821 0 0 0 0 0 0 0 0 0 0

3026 14 StreamReader * 0 8576 14 StreamReader * 14 StreamReader * 0 0 2821 0 0 0 0 0 0 0 0 0 0

3027 11 signed char 0 8202 11 signed char 11 signed char 0 5 0 0 0 0 0 0 0 0 0 0 0

3028 9 short int 0 8258 9 short int 9 short int 0 1 0 0 0 0 0 0 0 0 0 0 0

3029 18 unsigned short int 0 8262 18 unsigned short int 18 unsigned short int 0 1 0 0 0 0 0 0 0 0 0 0 0

3030 16 unsigned __int64 0 8230 16 unsigned __int64 16 unsigned __int64 0 8 0 0 0 0 0 0 0 0 0 0 0

3031 15 StreamWrapper * 0 8576 15 StreamWrapper * 15 StreamWrapper * 0 0 2822 0 0 0 0 0 0 0 0 0 0

3032 21 StreamWrapper const * 0 8576 21 StreamWrapper const * 21 StreamWrapper const * 0 0 3033 0 0 0 0 0 0 0 0 0 0

3033 19 StreamWrapper const 0 8832 19 StreamWrapper const 19 StreamWrapper const 0 0 2822 0 0 0 0 0 0 0 0 0 0

3034 20 StreamWriter const * 0 8576 20 StreamWriter const * 20 StreamWriter const * 0 0 3035 0 0 0 0 0 0 0 0 0 0

3035 18 StreamWriter const 0 8832 18 StreamWriter const 18 StreamWriter const 0 0 2823 0 0 0 0 0 0 0 0 0 0

3036 14 StreamWriter * 0 8576 14 StreamWriter * 14 StreamWriter * 0 0 2823 0 0 0 0 0 0 0 0 0 0

3037 13 TextEncoder * 0 8576 13 TextEncoder * 13 TextEncoder * 0 0 2824 0 0 0 0 0 0 0 0 0 0

3038 19 TextEncoder const * 0 8576 19 TextEncoder const * 19 TextEncoder const * 0 0 3039 0 0 0 0 0 0 0 0 0 0

3039 17 TextEncoder const 0 8832 17 TextEncoder const 17 TextEncoder const 0 0 2824 0 0 0 0 0 0 0 0 0 0

3040 7 wchar_t 0 8194 7 wchar_t 7 wchar_t 0 1 0 0 0 0 0 0 0 0 0 0 0

3041 18 TypeHandle const * 0 8576 18 TypeHandle const * 18 TypeHandle const * 0 0 3042 0 0 0 0 0 0 0 0 0 0

3042 16 TypeHandle const 0 8832 16 TypeHandle const 16 TypeHandle const 0 0 2826 0 0 0 0 0 0 0 0 0 0

3043 13 TypedObject * 0 8576 13 TypedObject * 13 TypedObject * 0 0 2829 0 0 0 0 0 0 0 0 0 0

3044 18 set< int > const * 0 8576 18 set< int > const * 18 set< int > const * 0 0 3045 0 0 0 0 0 0 0 0 0 0

3045 16 set< int > const 0 8832 16 set< int > const 16 set< int > const 0 0 3046 0 0 0 0 0 0 0 0 0 0

3046 10 set< int > 0 2048 10 set< int > 10 set< int > 0 0 0 0 0 0 0 0 0 0 0 0 0

3047 20 TypeRegistry const * 0 8576 20 TypeRegistry const * 20 TypeRegistry const * 0 0 3048 0 0 0 0 0 0 0 0 0 0

3048 18 TypeRegistry const 0 8832 18 TypeRegistry const 18 TypeRegistry const 0 0 2828 0 0 0 0 0 0 0 0 0 0

3049 14 TypeRegistry * 0 8576 14 TypeRegistry * 14 TypeRegistry * 0 0 2828 0 0 0 0 0 0 0 0 0 0

3050 19 TypedObject const * 0 8576 19 TypedObject const * 19 TypedObject const * 0 0 3051 0 0 0 0 0 0 0 0 0 0

3051 17 TypedObject const 0 8832 17 TypedObject const 17 TypedObject const 0 0 2829 0 0 0 0 0 0 0 0 0 0

3052 21 MemoryUsagePointers * 0 8576 21 MemoryUsagePointers * 21 MemoryUsagePointers * 0 0 2848 0 0 0 0 0 0 0 0 0 0

3053 22 ReferenceCount const * 0 8576 22 ReferenceCount const * 22 ReferenceCount const * 0 0 3054 0 0 0 0 0 0 0 0 0 0

3054 20 ReferenceCount const 0 8832 20 ReferenceCount const 20 ReferenceCount const 0 0 2835 0 0 0 0 0 0 0 0 0 0

3055 16 ReferenceCount * 0 8576 16 ReferenceCount * 16 ReferenceCount * 0 0 2835 0 0 0 0 0 0 0 0 0 0

3056 14 Buffer const * 0 8576 14 Buffer const * 14 Buffer const * 0 0 3057 0 0 0 0 0 0 0 0 0 0

3057 12 Buffer const 0 8832 12 Buffer const 12 Buffer const 0 0 2836 0 0 0 0 0 0 0 0 0 0

3058 27 PStatCollectorForwardBase * 0 8576 27 PStatCollectorForwardBase * 27 PStatCollectorForwardBase * 0 0 2837 0 0 0 0 0 0 0 0 0 0

3059 26 NodeReferenceCount const * 0 8576 26 NodeReferenceCount const * 26 NodeReferenceCount const * 0 0 3060 0 0 0 0 0 0 0 0 0 0

3060 24 NodeReferenceCount const 0 8832 24 NodeReferenceCount const 24 NodeReferenceCount const 0 0 2838 0 0 0 0 0 0 0 0 0 0

3061 10 Datagram * 0 8576 10 Datagram * 10 Datagram * 0 0 2839 0 0 0 0 0 0 0 0 0 0

3062 16 Datagram const * 0 8576 16 Datagram const * 16 Datagram const * 0 0 3063 0 0 0 0 0 0 0 0 0 0

3063 14 Datagram const 0 8832 14 Datagram const 14 Datagram const 0 0 2839 0 0 0 0 0 0 0 0 0 0

3064 19 DatagramGenerator * 0 8576 19 DatagramGenerator * 19 DatagramGenerator * 0 0 2840 0 0 0 0 0 0 0 0 0 0

3065 13 SubfileInfo * 0 8576 13 SubfileInfo * 13 SubfileInfo * 0 0 2855 0 0 0 0 0 0 0 0 0 0

3066 25 DatagramGenerator const * 0 8576 25 DatagramGenerator const * 25 DatagramGenerator const * 0 0 3067 0 0 0 0 0 0 0 0 0 0

3067 23 DatagramGenerator const 0 8832 23 DatagramGenerator const 23 DatagramGenerator const 0 0 2840 0 0 0 0 0 0 0 0 0 0

3068 19 FileReference const 0 8832 19 FileReference const 19 FileReference const 0 0 2845 0 0 0 0 0 0 0 0 0 0

3069 21 FileReference const * 0 8576 21 FileReference const * 21 FileReference const * 0 0 3068 0 0 0 0 0 0 0 0 0 0

3070 13 VirtualFile * 0 8576 13 VirtualFile * 13 VirtualFile * 0 0 2856 0 0 0 0 0 0 0 0 0 0

3071 18 DatagramIterator * 0 8576 18 DatagramIterator * 18 DatagramIterator * 0 0 2841 0 0 0 0 0 0 0 0 0 0

3072 24 DatagramIterator const * 0 8576 24 DatagramIterator const * 24 DatagramIterator const * 0 0 3073 0 0 0 0 0 0 0 0 0 0

3073 22 DatagramIterator const 0 8832 22 DatagramIterator const 22 DatagramIterator const 0 0 2841 0 0 0 0 0 0 0 0 0 0

3074 14 DatagramSink * 0 8576 14 DatagramSink * 14 DatagramSink * 0 0 2842 0 0 0 0 0 0 0 0 0 0

3075 19 SubfileInfo const * 0 8576 19 SubfileInfo const * 19 SubfileInfo const * 0 0 3076 0 0 0 0 0 0 0 0 0 0

3076 17 SubfileInfo const 0 8832 17 SubfileInfo const 17 SubfileInfo const 0 0 2855 0 0 0 0 0 0 0 0 0 0

3077 21 TypedReferenceCount * 0 8576 21 TypedReferenceCount * 21 TypedReferenceCount * 0 0 2844 0 0 0 0 0 0 0 0 0 0

3078 15 FileReference * 0 8576 15 FileReference * 15 FileReference * 0 0 2845 0 0 0 0 0 0 0 0 0 0

3079 9 Ramfile * 0 8576 9 Ramfile * 9 Ramfile * 0 0 2846 0 0 0 0 0 0 0 0 0 0

3080 15 Ramfile const * 0 8576 15 Ramfile const * 15 Ramfile const * 0 0 3081 0 0 0 0 0 0 0 0 0 0

3081 13 Ramfile const 0 8832 13 Ramfile const 13 Ramfile const 0 0 2846 0 0 0 0 0 0 0 0 0 0

3082 9 HashVal * 0 8576 9 HashVal * 9 HashVal * 0 0 2847 0 0 0 0 0 0 0 0 0 0

3083 15 HashVal const * 0 8576 15 HashVal const * 15 HashVal const * 0 0 3084 0 0 0 0 0 0 0 0 0 0

3084 13 HashVal const 0 8832 13 HashVal const 13 HashVal const 0 0 2847 0 0 0 0 0 0 0 0 0 0

3085 27 MemoryUsagePointers const * 0 8576 27 MemoryUsagePointers const * 27 MemoryUsagePointers const * 0 0 3086 0 0 0 0 0 0 0 0 0 0

3086 25 MemoryUsagePointers const 0 8832 25 MemoryUsagePointers const 25 MemoryUsagePointers const 0 0 2848 0 0 0 0 0 0 0 0 0 0

3087 12 ISubStream * 0 8576 12 ISubStream * 12 ISubStream * 0 0 2849 0 0 0 0 0 0 0 0 0 0

3088 12 OSubStream * 0 8576 12 OSubStream * 12 OSubStream * 0 0 2850 0 0 0 0 0 0 0 0 0 0

3089 11 SubStream * 0 8576 11 SubStream * 11 SubStream * 0 0 2851 0 0 0 0 0 0 0 0 0 0

3090 11 Multifile * 0 8576 11 Multifile * 11 Multifile * 0 0 2852 0 0 0 0 0 0 0 0 0 0

3091 17 Multifile const * 0 8576 17 Multifile const * 17 Multifile const * 0 0 3092 0 0 0 0 0 0 0 0 0 0

3092 15 Multifile const 0 8832 15 Multifile const 15 Multifile const 0 0 2852 0 0 0 0 0 0 0 0 0 0

3093 28 vector< CertRecord > const * 0 8576 39 vector< Multifile::CertRecord > const * 39 vector< Multifile::CertRecord > const * 0 0 3094 0 0 0 0 0 0 0 0 0 0

3094 26 vector< CertRecord > const 0 8832 37 vector< Multifile::CertRecord > const 37 vector< Multifile::CertRecord > const 0 0 3095 0 0 0 0 0 0 0 0 0 0

3095 20 vector< CertRecord > 0 2048 31 vector< Multifile::CertRecord > 31 vector< Multifile::CertRecord > 0 0 0 0 0 0 0 0 0 0 0 0 0

3096 10 EVP_PKEY * 0 8576 10 EVP_PKEY * 10 EVP_PKEY * 0 0 3097 0 0 0 0 0 0 0 0 0 0

3097 8 EVP_PKEY 0 1024 8 EVP_PKEY 8 EVP_PKEY 0 0 0 0 0 0 0 0 0 0 0 0 0

3098 15 Namable const * 0 8576 15 Namable const * 15 Namable const * 0 0 3099 0 0 0 0 0 0 0 0 0 0

3099 13 Namable const 0 8832 13 Namable const 13 Namable const 0 0 2854 0 0 0 0 0 0 0 0 0 0

3100 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 2854 0 0 0 0 0 0 0 0 0 0

3101 19 VirtualFile const * 0 8576 19 VirtualFile const * 19 VirtualFile const * 0 0 3102 0 0 0 0 0 0 0 0 0 0

3102 17 VirtualFile const 0 8832 17 VirtualFile const 17 VirtualFile const 0 0 2856 0 0 0 0 0 0 0 0 0 0

3103 19 VirtualFileSystem * 0 8576 19 VirtualFileSystem * 19 VirtualFileSystem * 0 0 2867 0 0 0 0 0 0 0 0 0 0

3104 17 VirtualFileList * 0 8576 17 VirtualFileList * 17 VirtualFileList * 0 0 2866 0 0 0 0 0 0 0 0 0 0

3105 24 VirtualFileMount const * 0 8576 24 VirtualFileMount const * 24 VirtualFileMount const * 0 0 3106 0 0 0 0 0 0 0 0 0 0

3106 22 VirtualFileMount const 0 8832 22 VirtualFileMount const 22 VirtualFileMount const 0 0 2858 0 0 0 0 0 0 0 0 0 0

3107 27 VirtualFileMountMultifile * 0 8576 27 VirtualFileMountMultifile * 27 VirtualFileMountMultifile * 0 0 2859 0 0 0 0 0 0 0 0 0 0

3108 33 VirtualFileMountMultifile const * 0 8576 33 VirtualFileMountMultifile const * 33 VirtualFileMountMultifile const * 0 0 3109 0 0 0 0 0 0 0 0 0 0

3109 31 VirtualFileMountMultifile const 0 8832 31 VirtualFileMountMultifile const 31 VirtualFileMountMultifile const 0 0 2859 0 0 0 0 0 0 0 0 0 0

3110 25 VirtualFileMountRamdisk * 0 8576 25 VirtualFileMountRamdisk * 25 VirtualFileMountRamdisk * 0 0 2860 0 0 0 0 0 0 0 0 0 0

3111 24 VirtualFileMountSystem * 0 8576 24 VirtualFileMountSystem * 24 VirtualFileMountSystem * 0 0 2861 0 0 0 0 0 0 0 0 0 0

3112 30 VirtualFileMountSystem const * 0 8576 30 VirtualFileMountSystem const * 30 VirtualFileMountSystem const * 0 0 3113 0 0 0 0 0 0 0 0 0 0

3113 28 VirtualFileMountSystem const 0 8832 28 VirtualFileMountSystem const 28 VirtualFileMountSystem const 0 0 2861 0 0 0 0 0 0 0 0 0 0

3114 25 VirtualFileSimple const * 0 8576 25 VirtualFileSimple const * 25 VirtualFileSimple const * 0 0 3115 0 0 0 0 0 0 0 0 0 0

3115 23 VirtualFileSimple const 0 8832 23 VirtualFileSimple const 23 VirtualFileSimple const 0 0 2862 0 0 0 0 0 0 0 0 0 0

3116 18 VirtualFileMount * 0 8576 18 VirtualFileMount * 18 VirtualFileMount * 0 0 2858 0 0 0 0 0 0 0 0 0 0

3117 15 TemporaryFile * 0 8576 15 TemporaryFile * 15 TemporaryFile * 0 0 2863 0 0 0 0 0 0 0 0 0 0

3118 19 IDecompressStream * 0 8576 19 IDecompressStream * 19 IDecompressStream * 0 0 2864 0 0 0 0 0 0 0 0 0 0

3119 17 OCompressStream * 0 8576 17 OCompressStream * 17 OCompressStream * 0 0 2865 0 0 0 0 0 0 0 0 0 0

3120 23 VirtualFileList const * 0 8576 23 VirtualFileList const * 23 VirtualFileList const * 0 0 3121 0 0 0 0 0 0 0 0 0 0

3121 21 VirtualFileList const 0 8832 21 VirtualFileList const 21 VirtualFileList const 0 0 2866 0 0 0 0 0 0 0 0 0 0

3122 25 VirtualFileSystem const * 0 8576 25 VirtualFileSystem const * 25 VirtualFileSystem const * 0 0 3123 0 0 0 0 0 0 0 0 0 0

3123 23 VirtualFileSystem const 0 8832 23 VirtualFileSystem const 23 VirtualFileSystem const 0 0 2867 0 0 0 0 0 0 0 0 0 0

3124 11 TrueClock * 0 8576 11 TrueClock * 11 TrueClock * 0 0 2869 0 0 0 0 0 0 0 0 0 0

3125 17 TrueClock const * 0 8576 17 TrueClock const * 17 TrueClock const * 0 0 3126 0 0 0 0 0 0 0 0 0 0

3126 15 TrueClock const 0 8832 15 TrueClock const 15 TrueClock const 0 0 2869 0 0 0 0 0 0 0 0 0 0

3127 11 Patchfile * 0 8576 11 Patchfile * 11 Patchfile * 0 0 2870 0 0 0 0 0 0 0 0 0 0

3128 8 Buffer * 0 8576 8 Buffer * 8 Buffer * 0 0 2836 0 0 0 0 0 0 0 0 0 0

3129 17 Patchfile const * 0 8576 17 Patchfile const * 17 Patchfile const * 0 0 3130 0 0 0 0 0 0 0 0 0 0

3130 15 Patchfile const 0 8832 15 Patchfile const 15 Patchfile const 0 0 2870 0 0 0 0 0 0 0 0 0 0

3131 20 ProfileTimer const * 0 8576 20 ProfileTimer const * 20 ProfileTimer const * 0 0 3132 0 0 0 0 0 0 0 0 0 0

3132 18 ProfileTimer const 0 8832 18 ProfileTimer const 18 ProfileTimer const 0 0 2871 0 0 0 0 0 0 0 0 0 0

3133 14 ProfileTimer * 0 8576 14 ProfileTimer * 14 ProfileTimer * 0 0 2871 0 0 0 0 0 0 0 0 0 0

3134 25 WeakPointerToVoid const * 0 8576 25 WeakPointerToVoid const * 25 WeakPointerToVoid const * 0 0 3135 0 0 0 0 0 0 0 0 0 0

3135 23 WeakPointerToVoid const 0 8832 23 WeakPointerToVoid const 23 WeakPointerToVoid const 0 0 2872 0 0 0 0 0 0 0 0 0 0

3136 9 DConfig * 0 8576 9 DConfig * 9 DConfig * 0 0 2790 0 0 0 0 0 0 0 0 0 0

3137 6 string 0 2048 20 basic_string< char > 20 basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0

3138 7 wstring 0 2048 23 basic_string< wchar_t > 23 basic_string< wchar_t > 0 0 0 0 0 0 0 0 0 0 0 0 0

0
0
15
3139 0 0 123 16 get_declarations 20 get_num_declarations 15 get_declaration 
3140 0 0 123 14 get_references 18 get_num_references 13 get_reference 
3141 0 0 123 22 get_trusted_references 26 get_num_trusted_references 21 get_trusted_reference 
3142 0 0 123 21 get_unique_references 25 get_num_unique_references 20 get_unique_reference 
3143 0 0 222 13 get_variables 17 get_num_variables 12 get_variable 
3144 0 0 236 15 get_directories 19 get_num_directories 13 get_directory 
3145 0 0 351 15 get_directories 19 get_num_directories 13 get_directory 
3146 0 0 638 11 get_systems 15 get_num_systems 10 get_system 
3147 0 0 877 15 get_typehandles 19 get_num_typehandles 14 get_typehandle 
3148 0 0 877 16 get_root_classes 20 get_num_root_classes 14 get_root_class 
3149 0 0 1138 12 get_pointers 16 get_num_pointers 11 get_pointer 
3150 0 0 1138 18 get_typed_pointers 16 get_num_pointers 17 get_typed_pointer 
3151 0 0 1165 17 get_subfile_names 16 get_num_subfiles 16 get_subfile_name 
3152 0 0 1323 9 get_files 13 get_num_files 8 get_file 
3153 0 0 1330 10 get_mounts 14 get_num_mounts 9 get_mount 
