1565844120 3 3 12 libp3express 4 vDgf 12 panda3d.core 619 630 7 is_null 0 4 1253 22 PointerToVoid::is_null 0 1 16 130 /** * Returns true if the PointerTo is a NULL pointer, false otherwise. (Direct * comparison to a NULL pointer also works.) */ 50 constexpr bool PointerToVoid::is_null(void) const; 631 8 get_hash 0 4 1253 23 PointerToVoid::get_hash 0 1 17 10 /** * */ 55 inline std::size_t PointerToVoid::get_hash(void) const; 632 14 ~PointerToVoid 0 4 1253 29 PointerToVoid::~PointerToVoid 0 0 0 36 PointerToVoid::~PointerToVoid(void); 633 5 clear 0 4 1252 56 PointerToBase< ReferenceCountedVector< double > >::clear 0 1 14 0 75 inline void PointerToBase< ReferenceCountedVector< double > >::clear(void); 634 6 output 0 4 1252 57 PointerToBase< ReferenceCountedVector< double > >::output 0 1 15 0 88 void PointerToBase< ReferenceCountedVector< double > >::output(std::ostream &out) const; 635 19 ~PointerToArrayBase 0 4 1251 49 PointerToArrayBase< double >::~PointerToArrayBase 0 0 0 63 inline PointerToArrayBase< double >::~PointerToArrayBase(void); 636 19 ConstPointerToArray 0 4 1250 50 ConstPointerToArray< double >::ConstPointerToArray 0 2 1 2 0 198 inline ConstPointerToArray< double >::ConstPointerToArray(PointerToArray< double > const ©); inline ConstPointerToArray< double >::ConstPointerToArray(ConstPointerToArray< double > const ©); 637 5 clear 0 4 1250 36 ConstPointerToArray< double >::clear 0 1 3 0 55 inline void ConstPointerToArray< double >::clear(void); 638 4 size 0 4 1250 35 ConstPointerToArray< double >::size 0 1 4 0 78 inline unsigned long long int ConstPointerToArray< double >::size(void) const; 639 11 get_element 0 4 1250 42 ConstPointerToArray< double >::get_element 0 1 5 0 96 inline double const &ConstPointerToArray< double >::get_element(unsigned long long int n) const; 640 11 __getitem__ 0 4 1250 42 ConstPointerToArray< double >::__getitem__ 0 1 6 0 89 double const &ConstPointerToArray< double >::__getitem__(unsigned long long int n) const; 641 8 get_data 0 4 1250 39 ConstPointerToArray< double >::get_data 0 1 7 0 62 PyObject *ConstPointerToArray< double >::get_data(void) const; 642 11 get_subdata 0 4 1250 42 ConstPointerToArray< double >::get_subdata 0 1 8 0 115 PyObject *ConstPointerToArray< double >::get_subdata(unsigned long long int n, unsigned long long int count) const; 643 13 get_ref_count 0 4 1250 44 ConstPointerToArray< double >::get_ref_count 0 1 9 0 68 inline int ConstPointerToArray< double >::get_ref_count(void) const; 644 18 get_node_ref_count 0 4 1250 49 ConstPointerToArray< double >::get_node_ref_count 0 1 10 0 73 inline int ConstPointerToArray< double >::get_node_ref_count(void) const; 645 5 count 0 4 1250 36 ConstPointerToArray< double >::count 0 1 11 0 89 inline unsigned long long int ConstPointerToArray< double >::count(double const &) const; 646 13 __getbuffer__ 0 4 1250 44 ConstPointerToArray< double >::__getbuffer__ 0 1 12 0 99 int ConstPointerToArray< double >::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const; 647 17 __releasebuffer__ 0 4 1250 48 ConstPointerToArray< double >::__releasebuffer__ 0 1 13 0 93 void ConstPointerToArray< double >::__releasebuffer__(PyObject *self, Py_buffer *view) const; 648 20 ~ConstPointerToArray 0 4 1250 51 ConstPointerToArray< double >::~ConstPointerToArray 0 0 0 58 ConstPointerToArray< double >::~ConstPointerToArray(void); 649 5 clear 0 4 1258 55 PointerToBase< ReferenceCountedVector< float > >::clear 0 1 31 0 74 inline void PointerToBase< ReferenceCountedVector< float > >::clear(void); 650 6 output 0 4 1258 56 PointerToBase< ReferenceCountedVector< float > >::output 0 1 32 0 87 void PointerToBase< ReferenceCountedVector< float > >::output(std::ostream &out) const; 651 19 ~PointerToArrayBase 0 4 1257 48 PointerToArrayBase< float >::~PointerToArrayBase 0 0 0 62 inline PointerToArrayBase< float >::~PointerToArrayBase(void); 652 19 ConstPointerToArray 0 4 1256 49 ConstPointerToArray< float >::ConstPointerToArray 0 2 18 19 0 194 inline ConstPointerToArray< float >::ConstPointerToArray(PointerToArray< float > const ©); inline ConstPointerToArray< float >::ConstPointerToArray(ConstPointerToArray< float > const ©); 653 5 clear 0 4 1256 35 ConstPointerToArray< float >::clear 0 1 20 0 54 inline void ConstPointerToArray< float >::clear(void); 654 4 size 0 4 1256 34 ConstPointerToArray< float >::size 0 1 21 0 77 inline unsigned long long int ConstPointerToArray< float >::size(void) const; 655 11 get_element 0 4 1256 41 ConstPointerToArray< float >::get_element 0 1 22 0 94 inline float const &ConstPointerToArray< float >::get_element(unsigned long long int n) const; 656 11 __getitem__ 0 4 1256 41 ConstPointerToArray< float >::__getitem__ 0 1 23 0 87 float const &ConstPointerToArray< float >::__getitem__(unsigned long long int n) const; 657 8 get_data 0 4 1256 38 ConstPointerToArray< float >::get_data 0 1 24 0 61 PyObject *ConstPointerToArray< float >::get_data(void) const; 658 11 get_subdata 0 4 1256 41 ConstPointerToArray< float >::get_subdata 0 1 25 0 114 PyObject *ConstPointerToArray< float >::get_subdata(unsigned long long int n, unsigned long long int count) const; 659 13 get_ref_count 0 4 1256 43 ConstPointerToArray< float >::get_ref_count 0 1 26 0 67 inline int ConstPointerToArray< float >::get_ref_count(void) const; 660 18 get_node_ref_count 0 4 1256 48 ConstPointerToArray< float >::get_node_ref_count 0 1 27 0 72 inline int ConstPointerToArray< float >::get_node_ref_count(void) const; 661 5 count 0 4 1256 35 ConstPointerToArray< float >::count 0 1 28 0 87 inline unsigned long long int ConstPointerToArray< float >::count(float const &) const; 662 13 __getbuffer__ 0 4 1256 43 ConstPointerToArray< float >::__getbuffer__ 0 1 29 0 98 int ConstPointerToArray< float >::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const; 663 17 __releasebuffer__ 0 4 1256 47 ConstPointerToArray< float >::__releasebuffer__ 0 1 30 0 92 void ConstPointerToArray< float >::__releasebuffer__(PyObject *self, Py_buffer *view) const; 664 20 ~ConstPointerToArray 0 4 1256 50 ConstPointerToArray< float >::~ConstPointerToArray 0 0 0 57 ConstPointerToArray< float >::~ConstPointerToArray(void); 665 5 clear 0 4 1262 53 PointerToBase< ReferenceCountedVector< int > >::clear 0 1 46 0 72 inline void PointerToBase< ReferenceCountedVector< int > >::clear(void); 666 6 output 0 4 1262 54 PointerToBase< ReferenceCountedVector< int > >::output 0 1 47 0 85 void PointerToBase< ReferenceCountedVector< int > >::output(std::ostream &out) const; 667 19 ~PointerToArrayBase 0 4 1261 46 PointerToArrayBase< int >::~PointerToArrayBase 0 0 0 60 inline PointerToArrayBase< int >::~PointerToArrayBase(void); 668 19 ConstPointerToArray 0 4 1260 47 ConstPointerToArray< int >::ConstPointerToArray 0 2 33 34 0 186 inline ConstPointerToArray< int >::ConstPointerToArray(PointerToArray< int > const ©); inline ConstPointerToArray< int >::ConstPointerToArray(ConstPointerToArray< int > const ©); 669 5 clear 0 4 1260 33 ConstPointerToArray< int >::clear 0 1 35 0 52 inline void ConstPointerToArray< int >::clear(void); 670 4 size 0 4 1260 32 ConstPointerToArray< int >::size 0 1 36 0 75 inline unsigned long long int ConstPointerToArray< int >::size(void) const; 671 11 get_element 0 4 1260 39 ConstPointerToArray< int >::get_element 0 1 37 0 90 inline int const &ConstPointerToArray< int >::get_element(unsigned long long int n) const; 672 11 __getitem__ 0 4 1260 39 ConstPointerToArray< int >::__getitem__ 0 1 38 0 83 int const &ConstPointerToArray< int >::__getitem__(unsigned long long int n) const; 673 8 get_data 0 4 1260 36 ConstPointerToArray< int >::get_data 0 1 39 0 59 PyObject *ConstPointerToArray< int >::get_data(void) const; 674 11 get_subdata 0 4 1260 39 ConstPointerToArray< int >::get_subdata 0 1 40 0 112 PyObject *ConstPointerToArray< int >::get_subdata(unsigned long long int n, unsigned long long int count) const; 675 13 get_ref_count 0 4 1260 41 ConstPointerToArray< int >::get_ref_count 0 1 41 0 65 inline int ConstPointerToArray< int >::get_ref_count(void) const; 676 18 get_node_ref_count 0 4 1260 46 ConstPointerToArray< int >::get_node_ref_count 0 1 42 0 70 inline int ConstPointerToArray< int >::get_node_ref_count(void) const; 677 5 count 0 4 1260 33 ConstPointerToArray< int >::count 0 1 43 0 83 inline unsigned long long int ConstPointerToArray< int >::count(int const &) const; 678 13 __getbuffer__ 0 4 1260 41 ConstPointerToArray< int >::__getbuffer__ 0 1 44 0 96 int ConstPointerToArray< int >::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const; 679 17 __releasebuffer__ 0 4 1260 45 ConstPointerToArray< int >::__releasebuffer__ 0 1 45 0 90 void ConstPointerToArray< int >::__releasebuffer__(PyObject *self, Py_buffer *view) const; 680 20 ~ConstPointerToArray 0 4 1260 48 ConstPointerToArray< int >::~ConstPointerToArray 0 0 0 55 ConstPointerToArray< int >::~ConstPointerToArray(void); 681 5 clear 0 4 1266 63 PointerToBase< ReferenceCountedVector< unsigned char > >::clear 0 1 61 0 82 inline void PointerToBase< ReferenceCountedVector< unsigned char > >::clear(void); 682 6 output 0 4 1266 64 PointerToBase< ReferenceCountedVector< unsigned char > >::output 0 1 62 0 95 void PointerToBase< ReferenceCountedVector< unsigned char > >::output(std::ostream &out) const; 683 19 ~PointerToArrayBase 0 4 1265 56 PointerToArrayBase< unsigned char >::~PointerToArrayBase 0 0 0 70 inline PointerToArrayBase< unsigned char >::~PointerToArrayBase(void); 684 19 ConstPointerToArray 0 4 1264 57 ConstPointerToArray< unsigned char >::ConstPointerToArray 0 2 48 49 0 226 inline ConstPointerToArray< unsigned char >::ConstPointerToArray(PointerToArray< unsigned char > const ©); inline ConstPointerToArray< unsigned char >::ConstPointerToArray(ConstPointerToArray< unsigned char > const ©); 685 5 clear 0 4 1264 43 ConstPointerToArray< unsigned char >::clear 0 1 50 0 62 inline void ConstPointerToArray< unsigned char >::clear(void); 686 4 size 0 4 1264 42 ConstPointerToArray< unsigned char >::size 0 1 51 0 85 inline unsigned long long int ConstPointerToArray< unsigned char >::size(void) const; 687 11 get_element 0 4 1264 49 ConstPointerToArray< unsigned char >::get_element 0 1 52 0 110 inline unsigned char const &ConstPointerToArray< unsigned char >::get_element(unsigned long long int n) const; 688 11 __getitem__ 0 4 1264 49 ConstPointerToArray< unsigned char >::__getitem__ 0 1 53 0 103 unsigned char const &ConstPointerToArray< unsigned char >::__getitem__(unsigned long long int n) const; 689 8 get_data 0 4 1264 46 ConstPointerToArray< unsigned char >::get_data 0 1 54 0 69 PyObject *ConstPointerToArray< unsigned char >::get_data(void) const; 690 11 get_subdata 0 4 1264 49 ConstPointerToArray< unsigned char >::get_subdata 0 1 55 0 122 PyObject *ConstPointerToArray< unsigned char >::get_subdata(unsigned long long int n, unsigned long long int count) const; 691 13 get_ref_count 0 4 1264 51 ConstPointerToArray< unsigned char >::get_ref_count 0 1 56 0 75 inline int ConstPointerToArray< unsigned char >::get_ref_count(void) const; 692 18 get_node_ref_count 0 4 1264 56 ConstPointerToArray< unsigned char >::get_node_ref_count 0 1 57 0 80 inline int ConstPointerToArray< unsigned char >::get_node_ref_count(void) const; 693 5 count 0 4 1264 43 ConstPointerToArray< unsigned char >::count 0 1 58 0 103 inline unsigned long long int ConstPointerToArray< unsigned char >::count(unsigned char const &) const; 694 13 __getbuffer__ 0 4 1264 51 ConstPointerToArray< unsigned char >::__getbuffer__ 0 1 59 0 106 int ConstPointerToArray< unsigned char >::__getbuffer__(PyObject *self, Py_buffer *view, int flags) const; 695 17 __releasebuffer__ 0 4 1264 55 ConstPointerToArray< unsigned char >::__releasebuffer__ 0 1 60 0 100 void ConstPointerToArray< unsigned char >::__releasebuffer__(PyObject *self, Py_buffer *view) const; 696 20 ~ConstPointerToArray 0 4 1264 58 ConstPointerToArray< unsigned char >::~ConstPointerToArray 0 0 0 65 ConstPointerToArray< unsigned char >::~ConstPointerToArray(void); 697 14 PointerToArray 0 4 1268 40 PointerToArray< double >::PointerToArray 0 3 63 64 65 0 279 inline PointerToArray< double >::PointerToArray(TypeHandle type_handle = (::_get_type_handle((double const *)(0)))); inline PointerToArray< double >::PointerToArray(PointerToArray< double > const ©); PointerToArray< double >::PointerToArray(PyObject *self, PyObject *source); 698 11 empty_array 0 4 1268 37 PointerToArray< double >::empty_array 0 1 66 0 171 static inline PointerToArray< double > PointerToArray< double >::empty_array(unsigned long long int n, TypeHandle type_handle = (::_get_type_handle((double const *)(0)))); 699 5 clear 0 4 1268 31 PointerToArray< double >::clear 0 1 67 0 50 inline void PointerToArray< double >::clear(void); 700 4 size 0 4 1268 30 PointerToArray< double >::size 0 1 68 0 73 inline unsigned long long int PointerToArray< double >::size(void) const; 701 9 push_back 0 4 1268 35 PointerToArray< double >::push_back 0 1 69 0 65 inline void PointerToArray< double >::push_back(double const &x); 702 8 pop_back 0 4 1268 34 PointerToArray< double >::pop_back 0 1 70 0 53 inline void PointerToArray< double >::pop_back(void); 703 11 get_element 0 4 1268 37 PointerToArray< double >::get_element 0 1 71 0 91 inline double const &PointerToArray< double >::get_element(unsigned long long int n) const; 704 11 set_element 0 4 1268 37 PointerToArray< double >::set_element 0 1 72 0 97 inline void PointerToArray< double >::set_element(unsigned long long int n, double const &value); 705 11 __getitem__ 0 4 1268 37 PointerToArray< double >::__getitem__ 0 1 73 0 84 double const &PointerToArray< double >::__getitem__(unsigned long long int n) const; 706 11 __setitem__ 0 4 1268 37 PointerToArray< double >::__setitem__ 0 1 74 0 90 void PointerToArray< double >::__setitem__(unsigned long long int n, double const &value); 707 8 get_data 0 4 1268 34 PointerToArray< double >::get_data 0 1 75 0 57 PyObject *PointerToArray< double >::get_data(void) const; 708 8 set_data 0 4 1268 34 PointerToArray< double >::set_data 0 1 76 0 56 void PointerToArray< double >::set_data(PyObject *data); 709 11 get_subdata 0 4 1268 37 PointerToArray< double >::get_subdata 0 1 77 0 110 PyObject *PointerToArray< double >::get_subdata(unsigned long long int n, unsigned long long int count) const; 710 11 set_subdata 0 4 1268 37 PointerToArray< double >::set_subdata 0 1 78 0 145 inline void PointerToArray< double >::set_subdata(unsigned long long int n, unsigned long long int count, std::basic_string< char > const &data); 711 13 get_ref_count 0 4 1268 39 PointerToArray< double >::get_ref_count 0 1 79 0 63 inline int PointerToArray< double >::get_ref_count(void) const; 712 18 get_node_ref_count 0 4 1268 44 PointerToArray< double >::get_node_ref_count 0 1 80 0 68 inline int PointerToArray< double >::get_node_ref_count(void) const; 713 5 count 0 4 1268 31 PointerToArray< double >::count 0 1 81 0 84 inline unsigned long long int PointerToArray< double >::count(double const &) const; 714 13 __getbuffer__ 0 4 1268 39 PointerToArray< double >::__getbuffer__ 0 1 82 0 88 int PointerToArray< double >::__getbuffer__(PyObject *self, Py_buffer *view, int flags); 715 17 __releasebuffer__ 0 4 1268 43 PointerToArray< double >::__releasebuffer__ 0 1 83 0 88 void PointerToArray< double >::__releasebuffer__(PyObject *self, Py_buffer *view) const; 716 15 ~PointerToArray 0 4 1268 41 PointerToArray< double >::~PointerToArray 0 0 0 48 PointerToArray< double >::~PointerToArray(void); 717 14 PointerToArray 0 4 1270 39 PointerToArray< float >::PointerToArray 0 3 84 85 86 0 274 inline PointerToArray< float >::PointerToArray(TypeHandle type_handle = (::_get_type_handle((float const *)(0)))); inline PointerToArray< float >::PointerToArray(PointerToArray< float > const ©); PointerToArray< float >::PointerToArray(PyObject *self, PyObject *source); 718 11 empty_array 0 4 1270 36 PointerToArray< float >::empty_array 0 1 87 0 168 static inline PointerToArray< float > PointerToArray< float >::empty_array(unsigned long long int n, TypeHandle type_handle = (::_get_type_handle((float const *)(0)))); 719 5 clear 0 4 1270 30 PointerToArray< float >::clear 0 1 88 0 49 inline void PointerToArray< float >::clear(void); 720 4 size 0 4 1270 29 PointerToArray< float >::size 0 1 89 0 72 inline unsigned long long int PointerToArray< float >::size(void) const; 721 9 push_back 0 4 1270 34 PointerToArray< float >::push_back 0 1 90 0 63 inline void PointerToArray< float >::push_back(float const &x); 722 8 pop_back 0 4 1270 33 PointerToArray< float >::pop_back 0 1 91 0 52 inline void PointerToArray< float >::pop_back(void); 723 11 get_element 0 4 1270 36 PointerToArray< float >::get_element 0 1 92 0 89 inline float const &PointerToArray< float >::get_element(unsigned long long int n) const; 724 11 set_element 0 4 1270 36 PointerToArray< float >::set_element 0 1 93 0 95 inline void PointerToArray< float >::set_element(unsigned long long int n, float const &value); 725 11 __getitem__ 0 4 1270 36 PointerToArray< float >::__getitem__ 0 1 94 0 82 float const &PointerToArray< float >::__getitem__(unsigned long long int n) const; 726 11 __setitem__ 0 4 1270 36 PointerToArray< float >::__setitem__ 0 1 95 0 88 void PointerToArray< float >::__setitem__(unsigned long long int n, float const &value); 727 8 get_data 0 4 1270 33 PointerToArray< float >::get_data 0 1 96 0 56 PyObject *PointerToArray< float >::get_data(void) const; 728 8 set_data 0 4 1270 33 PointerToArray< float >::set_data 0 1 97 0 55 void PointerToArray< float >::set_data(PyObject *data); 729 11 get_subdata 0 4 1270 36 PointerToArray< float >::get_subdata 0 1 98 0 109 PyObject *PointerToArray< float >::get_subdata(unsigned long long int n, unsigned long long int count) const; 730 11 set_subdata 0 4 1270 36 PointerToArray< float >::set_subdata 0 1 99 0 144 inline void PointerToArray< float >::set_subdata(unsigned long long int n, unsigned long long int count, std::basic_string< char > const &data); 731 13 get_ref_count 0 4 1270 38 PointerToArray< float >::get_ref_count 0 1 100 0 62 inline int PointerToArray< float >::get_ref_count(void) const; 732 18 get_node_ref_count 0 4 1270 43 PointerToArray< float >::get_node_ref_count 0 1 101 0 67 inline int PointerToArray< float >::get_node_ref_count(void) const; 733 5 count 0 4 1270 30 PointerToArray< float >::count 0 1 102 0 82 inline unsigned long long int PointerToArray< float >::count(float const &) const; 734 13 __getbuffer__ 0 4 1270 38 PointerToArray< float >::__getbuffer__ 0 1 103 0 87 int PointerToArray< float >::__getbuffer__(PyObject *self, Py_buffer *view, int flags); 735 17 __releasebuffer__ 0 4 1270 42 PointerToArray< float >::__releasebuffer__ 0 1 104 0 87 void PointerToArray< float >::__releasebuffer__(PyObject *self, Py_buffer *view) const; 736 15 ~PointerToArray 0 4 1270 40 PointerToArray< float >::~PointerToArray 0 0 0 47 PointerToArray< float >::~PointerToArray(void); 737 14 PointerToArray 0 4 1272 37 PointerToArray< int >::PointerToArray 0 3 105 106 107 0 264 inline PointerToArray< int >::PointerToArray(TypeHandle type_handle = (::_get_type_handle((int const *)(0)))); inline PointerToArray< int >::PointerToArray(PointerToArray< int > const ©); PointerToArray< int >::PointerToArray(PyObject *self, PyObject *source); 738 11 empty_array 0 4 1272 34 PointerToArray< int >::empty_array 0 1 108 0 162 static inline PointerToArray< int > PointerToArray< int >::empty_array(unsigned long long int n, TypeHandle type_handle = (::_get_type_handle((int const *)(0)))); 739 5 clear 0 4 1272 28 PointerToArray< int >::clear 0 1 109 0 47 inline void PointerToArray< int >::clear(void); 740 4 size 0 4 1272 27 PointerToArray< int >::size 0 1 110 0 70 inline unsigned long long int PointerToArray< int >::size(void) const; 741 9 push_back 0 4 1272 32 PointerToArray< int >::push_back 0 1 111 0 59 inline void PointerToArray< int >::push_back(int const &x); 742 8 pop_back 0 4 1272 31 PointerToArray< int >::pop_back 0 1 112 0 50 inline void PointerToArray< int >::pop_back(void); 743 11 get_element 0 4 1272 34 PointerToArray< int >::get_element 0 1 113 0 85 inline int const &PointerToArray< int >::get_element(unsigned long long int n) const; 744 11 set_element 0 4 1272 34 PointerToArray< int >::set_element 0 1 114 0 91 inline void PointerToArray< int >::set_element(unsigned long long int n, int const &value); 745 11 __getitem__ 0 4 1272 34 PointerToArray< int >::__getitem__ 0 1 115 0 78 int const &PointerToArray< int >::__getitem__(unsigned long long int n) const; 746 11 __setitem__ 0 4 1272 34 PointerToArray< int >::__setitem__ 0 1 116 0 84 void PointerToArray< int >::__setitem__(unsigned long long int n, int const &value); 747 8 get_data 0 4 1272 31 PointerToArray< int >::get_data 0 1 117 0 54 PyObject *PointerToArray< int >::get_data(void) const; 748 8 set_data 0 4 1272 31 PointerToArray< int >::set_data 0 1 118 0 53 void PointerToArray< int >::set_data(PyObject *data); 749 11 get_subdata 0 4 1272 34 PointerToArray< int >::get_subdata 0 1 119 0 107 PyObject *PointerToArray< int >::get_subdata(unsigned long long int n, unsigned long long int count) const; 750 11 set_subdata 0 4 1272 34 PointerToArray< int >::set_subdata 0 1 120 0 142 inline void PointerToArray< int >::set_subdata(unsigned long long int n, unsigned long long int count, std::basic_string< char > const &data); 751 13 get_ref_count 0 4 1272 36 PointerToArray< int >::get_ref_count 0 1 121 0 60 inline int PointerToArray< int >::get_ref_count(void) const; 752 18 get_node_ref_count 0 4 1272 41 PointerToArray< int >::get_node_ref_count 0 1 122 0 65 inline int PointerToArray< int >::get_node_ref_count(void) const; 753 5 count 0 4 1272 28 PointerToArray< int >::count 0 1 123 0 78 inline unsigned long long int PointerToArray< int >::count(int const &) const; 754 13 __getbuffer__ 0 4 1272 36 PointerToArray< int >::__getbuffer__ 0 1 124 0 85 int PointerToArray< int >::__getbuffer__(PyObject *self, Py_buffer *view, int flags); 755 17 __releasebuffer__ 0 4 1272 40 PointerToArray< int >::__releasebuffer__ 0 1 125 0 85 void PointerToArray< int >::__releasebuffer__(PyObject *self, Py_buffer *view) const; 756 15 ~PointerToArray 0 4 1272 38 PointerToArray< int >::~PointerToArray 0 0 0 45 PointerToArray< int >::~PointerToArray(void); 757 14 PointerToArray 0 4 1274 47 PointerToArray< unsigned char >::PointerToArray 0 3 126 127 128 0 314 inline PointerToArray< unsigned char >::PointerToArray(TypeHandle type_handle = (::_get_type_handle((unsigned char const *)(0)))); inline PointerToArray< unsigned char >::PointerToArray(PointerToArray< unsigned char > const ©); PointerToArray< unsigned char >::PointerToArray(PyObject *self, PyObject *source); 758 11 empty_array 0 4 1274 44 PointerToArray< unsigned char >::empty_array 0 1 129 0 192 static inline PointerToArray< unsigned char > PointerToArray< unsigned char >::empty_array(unsigned long long int n, TypeHandle type_handle = (::_get_type_handle((unsigned char const *)(0)))); 759 5 clear 0 4 1274 38 PointerToArray< unsigned char >::clear 0 1 130 0 57 inline void PointerToArray< unsigned char >::clear(void); 760 4 size 0 4 1274 37 PointerToArray< unsigned char >::size 0 1 131 0 80 inline unsigned long long int PointerToArray< unsigned char >::size(void) const; 761 9 push_back 0 4 1274 42 PointerToArray< unsigned char >::push_back 0 1 132 0 79 inline void PointerToArray< unsigned char >::push_back(unsigned char const &x); 762 8 pop_back 0 4 1274 41 PointerToArray< unsigned char >::pop_back 0 1 133 0 60 inline void PointerToArray< unsigned char >::pop_back(void); 763 11 get_element 0 4 1274 44 PointerToArray< unsigned char >::get_element 0 1 134 0 105 inline unsigned char const &PointerToArray< unsigned char >::get_element(unsigned long long int n) const; 764 11 set_element 0 4 1274 44 PointerToArray< unsigned char >::set_element 0 1 135 0 111 inline void PointerToArray< unsigned char >::set_element(unsigned long long int n, unsigned char const &value); 765 11 __getitem__ 0 4 1274 44 PointerToArray< unsigned char >::__getitem__ 0 1 136 0 98 unsigned char const &PointerToArray< unsigned char >::__getitem__(unsigned long long int n) const; 766 11 __setitem__ 0 4 1274 44 PointerToArray< unsigned char >::__setitem__ 0 1 137 0 104 void PointerToArray< unsigned char >::__setitem__(unsigned long long int n, unsigned char const &value); 767 8 get_data 0 4 1274 41 PointerToArray< unsigned char >::get_data 0 1 138 0 64 PyObject *PointerToArray< unsigned char >::get_data(void) const; 768 8 set_data 0 4 1274 41 PointerToArray< unsigned char >::set_data 0 1 139 0 63 void PointerToArray< unsigned char >::set_data(PyObject *data); 769 11 get_subdata 0 4 1274 44 PointerToArray< unsigned char >::get_subdata 0 1 140 0 117 PyObject *PointerToArray< unsigned char >::get_subdata(unsigned long long int n, unsigned long long int count) const; 770 11 set_subdata 0 4 1274 44 PointerToArray< unsigned char >::set_subdata 0 1 141 0 152 inline void PointerToArray< unsigned char >::set_subdata(unsigned long long int n, unsigned long long int count, std::basic_string< char > const &data); 771 13 get_ref_count 0 4 1274 46 PointerToArray< unsigned char >::get_ref_count 0 1 142 0 70 inline int PointerToArray< unsigned char >::get_ref_count(void) const; 772 18 get_node_ref_count 0 4 1274 51 PointerToArray< unsigned char >::get_node_ref_count 0 1 143 0 75 inline int PointerToArray< unsigned char >::get_node_ref_count(void) const; 773 5 count 0 4 1274 38 PointerToArray< unsigned char >::count 0 1 144 0 98 inline unsigned long long int PointerToArray< unsigned char >::count(unsigned char const &) const; 774 13 __getbuffer__ 0 4 1274 46 PointerToArray< unsigned char >::__getbuffer__ 0 1 145 0 95 int PointerToArray< unsigned char >::__getbuffer__(PyObject *self, Py_buffer *view, int flags); 775 17 __releasebuffer__ 0 4 1274 50 PointerToArray< unsigned char >::__releasebuffer__ 0 1 146 0 95 void PointerToArray< unsigned char >::__releasebuffer__(PyObject *self, Py_buffer *view) const; 776 15 ~PointerToArray 0 4 1274 48 PointerToArray< unsigned char >::~PointerToArray 0 0 0 55 PointerToArray< unsigned char >::~PointerToArray(void); 777 11 is_tracking 0 4 1275 24 MemoryUsage::is_tracking 0 1 148 125 /** * 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); 778 11 is_counting 0 4 1275 24 MemoryUsage::is_counting 0 1 149 168 /** * 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); 779 20 get_current_cpp_size 0 4 1275 33 MemoryUsage::get_current_cpp_size 0 1 150 136 /** * Returns the total number of bytes of allocated memory consumed by C++ * objects, not including the memory previously frozen. */ 66 static inline std::size_t MemoryUsage::get_current_cpp_size(void); 780 18 get_total_cpp_size 0 4 1275 31 MemoryUsage::get_total_cpp_size 0 1 151 132 /** * Returns the total number of bytes of allocated memory consumed by C++ * objects, including the memory previously frozen. */ 64 static inline std::size_t MemoryUsage::get_total_cpp_size(void); 781 26 get_panda_heap_single_size 0 4 1275 39 MemoryUsage::get_panda_heap_single_size 0 1 152 119 /** * Returns the total number of bytes allocated from the heap from code within * Panda, for individual objects. */ 72 static inline std::size_t MemoryUsage::get_panda_heap_single_size(void); 782 25 get_panda_heap_array_size 0 4 1275 38 MemoryUsage::get_panda_heap_array_size 0 1 153 107 /** * Returns the total number of bytes allocated from the heap from code within * Panda, for arrays. */ 71 static inline std::size_t MemoryUsage::get_panda_heap_array_size(void); 783 23 get_panda_heap_overhead 0 4 1275 36 MemoryUsage::get_panda_heap_overhead 0 1 154 190 /** * 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. */ 69 static inline std::size_t MemoryUsage::get_panda_heap_overhead(void); 784 19 get_panda_mmap_size 0 4 1275 32 MemoryUsage::get_panda_mmap_size 0 1 155 110 /** * Returns the total number of bytes allocated from the virtual memory pool * from code within Panda. */ 65 static inline std::size_t MemoryUsage::get_panda_mmap_size(void); 785 17 get_external_size 0 4 1275 30 MemoryUsage::get_external_size 0 1 156 496 /** * 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. */ 63 static inline std::size_t MemoryUsage::get_external_size(void); 786 14 get_total_size 0 4 1275 27 MemoryUsage::get_total_size 0 1 157 113 /** * Returns the total size of allocated memory consumed by the process, as * nearly as can be determined. */ 60 static inline std::size_t MemoryUsage::get_total_size(void); 787 16 get_num_pointers 0 4 1275 29 MemoryUsage::get_num_pointers 0 1 158 59 /** * Returns the number of pointers currently active. */ 54 static inline int MemoryUsage::get_num_pointers(void); 788 12 get_pointers 0 4 1275 25 MemoryUsage::get_pointers 0 1 159 100 /** * Fills the indicated MemoryUsagePointers with the set of all pointers * currently active. */ 74 static inline void MemoryUsage::get_pointers(MemoryUsagePointers &result); 789 20 get_pointers_of_type 0 4 1275 33 MemoryUsage::get_pointers_of_type 0 1 160 122 /** * 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); 790 19 get_pointers_of_age 0 4 1275 32 MemoryUsage::get_pointers_of_age 0 1 161 159 /** * 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); 791 28 get_pointers_with_zero_count 0 4 1275 41 MemoryUsage::get_pointers_with_zero_count 0 1 162 852 /** * 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); 792 6 freeze 0 4 1275 19 MemoryUsage::freeze 0 1 163 285 /** * '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); 793 18 show_current_types 0 4 1275 31 MemoryUsage::show_current_types 0 1 164 70 /** * Shows the breakdown of types of all of the active pointers. */ 57 static inline void MemoryUsage::show_current_types(void); 794 16 show_trend_types 0 4 1275 29 MemoryUsage::show_trend_types 0 1 165 118 /** * 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); 795 17 show_current_ages 0 4 1275 30 MemoryUsage::show_current_ages 0 1 166 69 /** * Shows the breakdown of ages of all of the active pointers. */ 56 static inline void MemoryUsage::show_current_ages(void); 796 15 show_trend_ages 0 4 1275 28 MemoryUsage::show_trend_ages 0 1 167 117 /** * 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); 797 11 MemoryUsage 0 4 1275 24 MemoryUsage::MemoryUsage 0 1 147 10 /** * */ 63 inline MemoryUsage::MemoryUsage(MemoryUsage const &) = default; 798 12 ~MemoryUsage 0 4 1275 25 MemoryUsage::~MemoryUsage 0 0 0 32 MemoryUsage::~MemoryUsage(void); 799 20 upcast_to_MemoryBase 0 12 1280 36 ReferenceCount::upcast_to_MemoryBase 0 1 174 40 upcast from ReferenceCount to MemoryBase 55 MemoryBase *ReferenceCount::upcast_to_MemoryBase(void); 800 26 downcast_to_ReferenceCount 0 12 1254 38 MemoryBase::downcast_to_ReferenceCount 0 0 42 downcast from MemoryBase to ReferenceCount 61 ReferenceCount *MemoryBase::downcast_to_ReferenceCount(void); 801 15 ~ReferenceCount 0 6 1280 31 ReferenceCount::~ReferenceCount 0 0 10 /** * */ 53 virtual inline ReferenceCount::~ReferenceCount(void); 802 13 get_ref_count 0 4 1280 29 ReferenceCount::get_ref_count 0 1 168 47 /** * Returns the current reference count. */ 53 inline int ReferenceCount::get_ref_count(void) const; 803 3 ref 0 4 1280 19 ReferenceCount::ref 0 1 169 538 /** * 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; 804 5 unref 0 6 1280 21 ReferenceCount::unref 0 1 170 865 /** * 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; 805 24 test_ref_count_integrity 0 4 1280 40 ReferenceCount::test_ref_count_integrity 0 1 171 135 /** * 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; 806 22 test_ref_count_nonzero 0 4 1280 38 ReferenceCount::test_ref_count_nonzero 0 1 172 144 /** * 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; 807 14 get_class_type 0 4 1280 30 ReferenceCount::get_class_type 0 1 173 0 55 static TypeHandle ReferenceCount::get_class_type(void); 808 10 get_length 0 4 1282 18 Buffer::get_length 0 1 176 10 /** * */ 42 inline int Buffer::get_length(void) const; 809 6 Buffer 0 4 1282 14 Buffer::Buffer 0 1 175 10 /** * */ 48 inline Buffer::Buffer(Buffer const &) = default; 810 15 compress_string 0 1 0 15 compress_string 0 1 612 0 78 std::string compress_string(std::string const &source, int compression_level); 811 17 decompress_string 0 1 0 17 decompress_string 0 1 613 0 57 std::string decompress_string(std::string const &source); 812 13 compress_file 0 1 0 13 compress_file 0 1 614 0 88 bool compress_file(Filename const &source, Filename const &dest, int compression_level); 813 15 decompress_file 0 1 0 15 decompress_file 0 1 615 0 67 bool decompress_file(Filename const &source, Filename const &dest); 814 15 compress_stream 0 1 0 15 compress_stream 0 1 616 0 86 bool compress_stream(std::istream &source, std::ostream &dest, int compression_level); 815 17 decompress_stream 0 1 0 17 decompress_stream 0 1 617 0 65 bool decompress_stream(std::istream &source, std::ostream &dest); 816 11 copy_stream 0 1 0 11 copy_stream 0 1 618 0 59 bool copy_stream(std::istream &source, std::ostream &dest); 817 9 add_level 0 6 1283 36 PStatCollectorForwardBase::add_level 0 1 177 0 68 virtual void PStatCollectorForwardBase::add_level(double level) = 0; 818 18 get_node_ref_count 0 4 1284 38 NodeReferenceCount::get_node_ref_count 0 1 178 47 /** * Returns the current reference count. */ 62 inline int NodeReferenceCount::get_node_ref_count(void) const; 819 8 node_ref 0 4 1284 28 NodeReferenceCount::node_ref 0 1 179 107 /** * Explicitly increments the node reference count and the normal reference * count simultaneously. */ 53 inline void NodeReferenceCount::node_ref(void) const; 820 10 node_unref 0 4 1284 30 NodeReferenceCount::node_unref 0 1 180 201 /** * 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; 821 24 test_ref_count_integrity 0 4 1284 44 NodeReferenceCount::test_ref_count_integrity 0 1 181 97 /** * 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; 822 15 node_unref_only 0 4 1284 35 NodeReferenceCount::node_unref_only 0 1 182 186 /** * Decrements the node reference count without affecting the normal reference * count. Intended to be called by derived classes only, presumably to * reimplement node_unref(). */ 60 inline void NodeReferenceCount::node_unref_only(void) const; 823 14 get_class_type 0 4 1284 34 NodeReferenceCount::get_class_type 0 1 183 0 59 static TypeHandle NodeReferenceCount::get_class_type(void); 824 8 Datagram 0 4 1285 18 Datagram::Datagram 0 4 184 185 186 187 130 /** * Constructs a datagram from an existing block of data. */ /** * Constructs a datagram from an existing block of data. */ 268 inline Datagram::Datagram(void) = default; inline Datagram::Datagram(void const *data, std::size_t size); inline explicit Datagram::Datagram(vector_uchar data); Datagram::Datagram(Datagram const ©) = default; Datagram::Datagram(Datagram &&from) noexcept = default; 825 10 operator = 0 4 1285 20 Datagram::operator = 0 2 188 189 0 121 void Datagram::operator =(Datagram const ©) = default; void Datagram::operator =(Datagram &&from) noexcept = default; 826 5 clear 0 6 1285 15 Datagram::clear 0 1 190 90 /** * Resets the datagram to empty, in preparation for building up a new * datagram. */ 35 virtual void Datagram::clear(void); 827 8 dump_hex 0 4 1285 18 Datagram::dump_hex 0 1 191 111 /** * Writes a representation of the entire datagram contents, as a sequence of * hex (and ASCII) values. */ 74 void Datagram::dump_hex(std::ostream &out, unsigned int indent = 0) const; 828 8 add_bool 0 4 1285 18 Datagram::add_bool 0 1 192 48 /** * Adds a boolean value to the datagram. */ 43 inline void Datagram::add_bool(bool value); 829 8 add_int8 0 4 1285 18 Datagram::add_int8 0 1 193 55 /** * Adds a signed 8-bit integer to the datagram. */ 45 inline void Datagram::add_int8(int8_t value); 830 9 add_uint8 0 4 1285 19 Datagram::add_uint8 0 1 194 58 /** * Adds an unsigned 8-bit integer to the datagram. */ 47 inline void Datagram::add_uint8(uint8_t value); 831 9 add_int16 0 4 1285 19 Datagram::add_int16 0 1 195 106 // The default numeric packing is little-endian. /** * Adds a signed 16-bit integer to the datagram. */ 47 inline void Datagram::add_int16(int16_t value); 832 9 add_int32 0 4 1285 19 Datagram::add_int32 0 1 196 56 /** * Adds a signed 32-bit integer to the datagram. */ 47 inline void Datagram::add_int32(int32_t value); 833 9 add_int64 0 4 1285 19 Datagram::add_int64 0 1 197 56 /** * Adds a signed 64-bit integer to the datagram. */ 47 inline void Datagram::add_int64(int64_t value); 834 10 add_uint16 0 4 1285 20 Datagram::add_uint16 0 1 198 59 /** * Adds an unsigned 16-bit integer to the datagram. */ 49 inline void Datagram::add_uint16(uint16_t value); 835 10 add_uint32 0 4 1285 20 Datagram::add_uint32 0 1 199 59 /** * Adds an unsigned 32-bit integer to the datagram. */ 49 inline void Datagram::add_uint32(uint32_t value); 836 10 add_uint64 0 4 1285 20 Datagram::add_uint64 0 1 200 59 /** * Adds an unsigned 64-bit integer to the datagram. */ 49 inline void Datagram::add_uint64(uint64_t value); 837 11 add_float32 0 4 1285 21 Datagram::add_float32 0 1 201 197 /** * 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. */ 52 inline void Datagram::add_float32(PN_float32 value); 838 11 add_float64 0 4 1285 21 Datagram::add_float64 0 1 202 63 /** * Adds a 64-bit floating-point number to the datagram. */ 52 inline void Datagram::add_float64(PN_float64 value); 839 12 add_stdfloat 0 4 1285 22 Datagram::add_stdfloat 0 1 203 105 /** * Adds either a 32-bit or a 64-bit floating-point number, according to * set_stdfloat_double(). */ 54 inline void Datagram::add_stdfloat(PN_stdfloat value); 840 12 add_be_int16 0 4 1285 22 Datagram::add_be_int16 0 1 204 136 // These functions pack numbers big-endian, in case that's desired. /** * Adds a signed 16-bit big-endian integer to the datagram. */ 50 inline void Datagram::add_be_int16(int16_t value); 841 12 add_be_int32 0 4 1285 22 Datagram::add_be_int32 0 1 205 67 /** * Adds a signed 32-bit big-endian integer to the datagram. */ 50 inline void Datagram::add_be_int32(int32_t value); 842 12 add_be_int64 0 4 1285 22 Datagram::add_be_int64 0 1 206 67 /** * Adds a signed 64-bit big-endian integer to the datagram. */ 50 inline void Datagram::add_be_int64(int64_t value); 843 13 add_be_uint16 0 4 1285 23 Datagram::add_be_uint16 0 1 207 70 /** * Adds an unsigned 16-bit big-endian integer to the datagram. */ 52 inline void Datagram::add_be_uint16(uint16_t value); 844 13 add_be_uint32 0 4 1285 23 Datagram::add_be_uint32 0 1 208 70 /** * Adds an unsigned 32-bit big-endian integer to the datagram. */ 52 inline void Datagram::add_be_uint32(uint32_t value); 845 13 add_be_uint64 0 4 1285 23 Datagram::add_be_uint64 0 1 209 70 /** * Adds an unsigned 64-bit big-endian integer to the datagram. */ 52 inline void Datagram::add_be_uint64(uint64_t value); 846 14 add_be_float32 0 4 1285 24 Datagram::add_be_float32 0 1 210 94 /** * Adds a 32-bit single-precision big-endian floating-point number to the * datagram. */ 55 inline void Datagram::add_be_float32(PN_float32 value); 847 14 add_be_float64 0 4 1285 24 Datagram::add_be_float64 0 1 211 74 /** * Adds a 64-bit big-endian floating-point number to the datagram. */ 55 inline void Datagram::add_be_float64(PN_float64 value); 848 10 add_string 0 4 1285 20 Datagram::add_string 0 1 212 109 /** * Adds a variable-length string to the datagram. This actually adds a count * followed by n bytes. */ 57 inline void Datagram::add_string(std::string const &str); 849 12 add_string32 0 4 1285 22 Datagram::add_string32 0 1 213 116 /** * Adds a variable-length string to the datagram, using a 32-bit length field * to allow very long strings. */ 59 inline void Datagram::add_string32(std::string const &str); 850 12 add_z_string 0 4 1285 22 Datagram::add_z_string 0 1 214 86 /** * Adds a variable-length string to the datagram, as a NULL-terminated string. */ 59 inline void Datagram::add_z_string(std::string const &str); 851 16 add_fixed_string 0 4 1285 26 Datagram::add_fixed_string 0 1 215 238 /** * 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. */ 81 inline void Datagram::add_fixed_string(std::string const &str, std::size_t size); 852 11 add_wstring 0 4 1285 21 Datagram::add_wstring 0 1 216 58 /** * Adds a variable-length wstring to the datagram. */ 52 void Datagram::add_wstring(std::wstring const &str); 853 8 add_blob 0 4 1285 18 Datagram::add_blob 0 1 217 114 /** * Adds a variable-length binary blob to the datagram. This actually adds a * count followed by n bytes. */ 53 inline void Datagram::add_blob(vector_uchar const &); 854 10 add_blob32 0 4 1285 20 Datagram::add_blob32 0 1 218 119 /** * Adds a variable-length binary blob to the datagram, using a 32-bit length * field to allow very long blobs. */ 55 inline void Datagram::add_blob32(vector_uchar const &); 855 9 pad_bytes 0 4 1285 19 Datagram::pad_bytes 0 1 219 67 /** * Adds the indicated number of zero bytes to the datagram. */ 43 void Datagram::pad_bytes(std::size_t size); 856 11 append_data 0 4 1285 21 Datagram::append_data 0 1 220 132 /** * Appends some more raw data to the end of the datagram. */ /** * Appends some more raw data to the end of the datagram. */ 124 void Datagram::append_data(void const *data, std::size_t size); inline void Datagram::append_data(vector_uchar const &data); 857 11 get_message 0 4 1285 21 Datagram::get_message 0 1 221 51 /** * Returns the datagram's data as a string. */ 51 inline PyObject *Datagram::get_message(void) const; 858 9 __bytes__ 0 4 1285 19 Datagram::__bytes__ 0 1 222 0 49 inline PyObject *Datagram::__bytes__(void) const; 859 10 get_length 0 4 1285 20 Datagram::get_length 0 1 223 55 /** * Returns the number of bytes in the datagram. */ 52 inline std::size_t Datagram::get_length(void) const; 860 9 set_array 0 4 1285 19 Datagram::set_array 0 1 224 199 /** * 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. */ 48 inline void Datagram::set_array(PTA_uchar data); 861 10 copy_array 0 4 1285 20 Datagram::copy_array 0 1 225 237 /** * 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. */ 50 inline void Datagram::copy_array(CPTA_uchar data); 862 9 get_array 0 4 1285 19 Datagram::get_array 0 1 226 70 /** * Returns a const pointer to the actual data in the Datagram. */ 50 inline CPTA_uchar Datagram::get_array(void) const; 863 12 modify_array 0 4 1285 22 Datagram::modify_array 0 1 227 75 /** * Returns a modifiable pointer to the actual data in the Datagram. */ 46 inline PTA_uchar Datagram::modify_array(void); 864 19 set_stdfloat_double 0 4 1285 29 Datagram::set_stdfloat_double 0 1 228 343 /** * 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); 865 19 get_stdfloat_double 0 4 1285 29 Datagram::get_stdfloat_double 0 1 229 72 /** * Returns the stdfloat_double flag. See set_stdfloat_double(). */ 54 inline bool Datagram::get_stdfloat_double(void) const; 866 11 operator == 0 4 1285 21 Datagram::operator == 0 1 230 0 63 inline bool Datagram::operator ==(Datagram const &other) const; 867 11 operator != 0 4 1285 21 Datagram::operator != 0 1 231 0 63 inline bool Datagram::operator !=(Datagram const &other) const; 868 10 operator < 0 4 1285 20 Datagram::operator < 0 1 232 0 62 inline bool Datagram::operator <(Datagram const &other) const; 869 6 output 0 4 1285 16 Datagram::output 0 1 233 67 /** * Write a string representation of this instance to . */ 47 void Datagram::output(std::ostream &out) const; 870 5 write 0 4 1285 15 Datagram::write 0 1 234 67 /** * Write a string representation of this instance to . */ 71 void Datagram::write(std::ostream &out, unsigned int indent = 0) const; 871 14 get_class_type 0 4 1285 24 Datagram::get_class_type 0 1 235 0 49 static TypeHandle Datagram::get_class_type(void); 872 18 ~DatagramGenerator 0 6 1287 37 DatagramGenerator::~DatagramGenerator 0 0 82 /** * Does nothing since this is class is just the definition of an interface */ 52 virtual DatagramGenerator::~DatagramGenerator(void); 873 12 get_datagram 0 6 1287 31 DatagramGenerator::get_datagram 0 1 236 0 65 virtual bool DatagramGenerator::get_datagram(Datagram &data) = 0; 874 13 save_datagram 0 6 1287 32 DatagramGenerator::save_datagram 0 1 237 391 /** * 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); 875 6 is_eof 0 6 1287 25 DatagramGenerator::is_eof 0 1 238 0 49 virtual bool DatagramGenerator::is_eof(void) = 0; 876 8 is_error 0 6 1287 27 DatagramGenerator::is_error 0 1 239 0 51 virtual bool DatagramGenerator::is_error(void) = 0; 877 12 get_filename 0 6 1287 31 DatagramGenerator::get_filename 0 1 240 159 /** * 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); 878 13 get_timestamp 0 6 1287 32 DatagramGenerator::get_timestamp 0 1 241 138 /** * 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. */ 60 virtual time_t DatagramGenerator::get_timestamp(void) const; 879 8 get_file 0 6 1287 27 DatagramGenerator::get_file 0 1 242 156 /** * 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); 880 9 get_vfile 0 6 1287 28 DatagramGenerator::get_vfile 0 1 243 153 /** * 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); 881 12 get_file_pos 0 6 1287 31 DatagramGenerator::get_file_pos 0 1 244 327 /** * 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(). */ 61 virtual std::streamoff DatagramGenerator::get_file_pos(void); 882 16 DatagramIterator 0 4 1288 34 DatagramIterator::DatagramIterator 0 3 245 246 247 22 /** * */ /** * */ 220 inline DatagramIterator::DatagramIterator(void); inline DatagramIterator::DatagramIterator(Datagram const &datagram, std::size_t offset = 0); inline DatagramIterator::DatagramIterator(DatagramIterator const &) = default; 883 8 get_bool 0 4 1288 26 DatagramIterator::get_bool 0 1 248 36 /** * Extracts a boolean value. */ 45 inline bool DatagramIterator::get_bool(void); 884 8 get_int8 0 4 1288 26 DatagramIterator::get_int8 0 1 249 43 /** * Extracts a signed 8-bit integer. */ 47 inline int8_t DatagramIterator::get_int8(void); 885 9 get_uint8 0 4 1288 27 DatagramIterator::get_uint8 0 1 250 46 /** * Extracts an unsigned 8-bit integer. */ 49 inline uint8_t DatagramIterator::get_uint8(void); 886 9 get_int16 0 4 1288 27 DatagramIterator::get_int16 0 1 251 44 /** * Extracts a signed 16-bit integer. */ 49 inline int16_t DatagramIterator::get_int16(void); 887 9 get_int32 0 4 1288 27 DatagramIterator::get_int32 0 1 252 44 /** * Extracts a signed 32-bit integer. */ 49 inline int32_t DatagramIterator::get_int32(void); 888 9 get_int64 0 4 1288 27 DatagramIterator::get_int64 0 1 253 44 /** * Extracts a signed 64-bit integer. */ 49 inline int64_t DatagramIterator::get_int64(void); 889 10 get_uint16 0 4 1288 28 DatagramIterator::get_uint16 0 1 254 47 /** * Extracts an unsigned 16-bit integer. */ 51 inline uint16_t DatagramIterator::get_uint16(void); 890 10 get_uint32 0 4 1288 28 DatagramIterator::get_uint32 0 1 255 47 /** * Extracts an unsigned 32-bit integer. */ 51 inline uint32_t DatagramIterator::get_uint32(void); 891 10 get_uint64 0 4 1288 28 DatagramIterator::get_uint64 0 1 256 47 /** * Extracts an unsigned 64-bit integer. */ 51 inline uint64_t DatagramIterator::get_uint64(void); 892 11 get_float32 0 4 1288 29 DatagramIterator::get_float32 0 1 257 68 /** * Extracts a 32-bit single-precision floating-point number. */ 54 inline PN_float32 DatagramIterator::get_float32(void); 893 11 get_float64 0 4 1288 29 DatagramIterator::get_float64 0 1 258 51 /** * Extracts a 64-bit floating-point number. */ 54 inline PN_float64 DatagramIterator::get_float64(void); 894 12 get_stdfloat 0 4 1288 30 DatagramIterator::get_stdfloat 0 1 259 119 /** * Extracts either a 32-bit or a 64-bit floating-point number, according to * Datagram::set_stdfloat_double(). */ 56 inline PN_stdfloat DatagramIterator::get_stdfloat(void); 895 12 get_be_int16 0 4 1288 30 DatagramIterator::get_be_int16 0 1 260 55 /** * Extracts a signed 16-bit big-endian integer. */ 52 inline int16_t DatagramIterator::get_be_int16(void); 896 12 get_be_int32 0 4 1288 30 DatagramIterator::get_be_int32 0 1 261 55 /** * Extracts a signed 32-bit big-endian integer. */ 52 inline int32_t DatagramIterator::get_be_int32(void); 897 12 get_be_int64 0 4 1288 30 DatagramIterator::get_be_int64 0 1 262 55 /** * Extracts a signed 64-bit big-endian integer. */ 52 inline int64_t DatagramIterator::get_be_int64(void); 898 13 get_be_uint16 0 4 1288 31 DatagramIterator::get_be_uint16 0 1 263 58 /** * Extracts an unsigned 16-bit big-endian integer. */ 54 inline uint16_t DatagramIterator::get_be_uint16(void); 899 13 get_be_uint32 0 4 1288 31 DatagramIterator::get_be_uint32 0 1 264 58 /** * Extracts an unsigned 32-bit big-endian integer. */ 54 inline uint32_t DatagramIterator::get_be_uint32(void); 900 13 get_be_uint64 0 4 1288 31 DatagramIterator::get_be_uint64 0 1 265 58 /** * Extracts an unsigned 64-bit big-endian integer. */ 54 inline uint64_t DatagramIterator::get_be_uint64(void); 901 14 get_be_float32 0 4 1288 32 DatagramIterator::get_be_float32 0 1 266 79 /** * Extracts a 32-bit big-endian single-precision floating-point number. */ 57 inline PN_float32 DatagramIterator::get_be_float32(void); 902 14 get_be_float64 0 4 1288 32 DatagramIterator::get_be_float64 0 1 267 62 /** * Extracts a 64-bit big-endian floating-point number. */ 57 inline PN_float64 DatagramIterator::get_be_float64(void); 903 10 get_string 0 4 1288 28 DatagramIterator::get_string 0 1 268 45 /** * Extracts a variable-length string. */ 47 std::string DatagramIterator::get_string(void); 904 12 get_string32 0 4 1288 30 DatagramIterator::get_string32 0 1 269 72 /** * Extracts a variable-length string with a 32-bit length field. */ 49 std::string DatagramIterator::get_string32(void); 905 12 get_z_string 0 4 1288 30 DatagramIterator::get_z_string 0 1 270 74 /** * Extracts a variable-length string, as a NULL-terminated string. */ 49 std::string DatagramIterator::get_z_string(void); 906 16 get_fixed_string 0 4 1288 34 DatagramIterator::get_fixed_string 0 1 271 128 /** * Extracts a fixed-length string. However, if a zero byte occurs within the * string, it marks the end of the string. */ 65 std::string DatagramIterator::get_fixed_string(std::size_t size); 907 11 get_wstring 0 4 1288 29 DatagramIterator::get_wstring 0 1 272 75 /** * Extracts a variable-length wstring (with a 32-bit length field). */ 49 std::wstring DatagramIterator::get_wstring(void); 908 8 get_blob 0 4 1288 26 DatagramIterator::get_blob 0 1 273 50 /** * Extracts a variable-length binary blob. */ 53 inline vector_uchar DatagramIterator::get_blob(void); 909 10 get_blob32 0 4 1288 28 DatagramIterator::get_blob32 0 1 274 75 /** * Extracts a variable-length binary blob with a 32-bit size field. */ 55 inline vector_uchar DatagramIterator::get_blob32(void); 910 10 skip_bytes 0 4 1288 28 DatagramIterator::skip_bytes 0 1 275 68 /** * Skips over the indicated number of bytes in the datagram. */ 59 inline void DatagramIterator::skip_bytes(std::size_t size); 911 13 extract_bytes 0 4 1288 31 DatagramIterator::extract_bytes 0 1 276 346 /** * Extracts the indicated number of bytes in the datagram and returns them as * a string. */ /** * 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. */ 147 vector_uchar DatagramIterator::extract_bytes(std::size_t size); std::size_t DatagramIterator::extract_bytes(unsigned char *into, std::size_t size); 912 19 get_remaining_bytes 0 4 1288 37 DatagramIterator::get_remaining_bytes 0 1 277 115 /** * Returns the remaining bytes in the datagram as a string, but does not * extract them from the iterator. */ 70 inline vector_uchar DatagramIterator::get_remaining_bytes(void) const; 913 18 get_remaining_size 0 4 1288 36 DatagramIterator::get_remaining_size 0 1 278 49 /** * Return the bytes left in the datagram. */ 68 inline std::size_t DatagramIterator::get_remaining_size(void) const; 914 12 get_datagram 0 4 1288 30 DatagramIterator::get_datagram 0 1 279 48 /** * Return the datagram of this iterator. */ 66 inline Datagram const &DatagramIterator::get_datagram(void) const; 915 17 get_current_index 0 4 1288 35 DatagramIterator::get_current_index 0 1 280 100 /** * Returns the current position within the datagram of the next piece of data * to extract. */ 67 inline std::size_t DatagramIterator::get_current_index(void) const; 916 6 output 0 4 1288 24 DatagramIterator::output 0 1 281 67 /** * Write a string representation of this instance to . */ 55 void DatagramIterator::output(std::ostream &out) const; 917 5 write 0 4 1288 23 DatagramIterator::write 0 1 282 67 /** * Write a string representation of this instance to . */ 79 void DatagramIterator::write(std::ostream &out, unsigned int indent = 0) const; 918 14 get_class_type 0 4 1288 32 DatagramIterator::get_class_type 0 1 283 0 57 static TypeHandle DatagramIterator::get_class_type(void); 919 17 ~DatagramIterator 0 4 1288 35 DatagramIterator::~DatagramIterator 0 0 0 42 DatagramIterator::~DatagramIterator(void); 920 13 ~DatagramSink 0 6 1289 27 DatagramSink::~DatagramSink 0 0 82 /** * Does nothing since this is class is just the definition of an interface */ 42 virtual DatagramSink::~DatagramSink(void); 921 12 put_datagram 0 6 1289 26 DatagramSink::put_datagram 0 1 284 0 66 virtual bool DatagramSink::put_datagram(Datagram const &data) = 0; 922 13 copy_datagram 0 6 1289 27 DatagramSink::copy_datagram 0 2 285 286 713 /** * 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. */ /** * 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); 923 8 is_error 0 6 1289 22 DatagramSink::is_error 0 1 287 0 46 virtual bool DatagramSink::is_error(void) = 0; 924 5 flush 0 6 1289 19 DatagramSink::flush 0 1 288 0 43 virtual void DatagramSink::flush(void) = 0; 925 12 get_filename 0 6 1289 26 DatagramSink::get_filename 0 1 289 159 /** * 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); 926 8 get_file 0 6 1289 22 DatagramSink::get_file 0 1 290 152 /** * 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); 927 12 get_file_pos 0 6 1289 26 DatagramSink::get_file_pos 0 1 291 322 /** * 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(). */ 56 virtual std::streamoff DatagramSink::get_file_pos(void); 928 21 upcast_to_TypedObject 0 12 1295 42 TypedReferenceCount::upcast_to_TypedObject 0 1 297 46 upcast from TypedReferenceCount to TypedObject 62 TypedObject *TypedReferenceCount::upcast_to_TypedObject(void); 929 31 downcast_to_TypedReferenceCount 0 12 1286 44 TypedObject::downcast_to_TypedReferenceCount 0 0 48 downcast from TypedObject to TypedReferenceCount 72 TypedReferenceCount *TypedObject::downcast_to_TypedReferenceCount(void); 930 24 upcast_to_ReferenceCount 0 12 1295 45 TypedReferenceCount::upcast_to_ReferenceCount 0 1 298 49 upcast from TypedReferenceCount to ReferenceCount 68 ReferenceCount *TypedReferenceCount::upcast_to_ReferenceCount(void); 931 31 downcast_to_TypedReferenceCount 0 12 1280 47 ReferenceCount::downcast_to_TypedReferenceCount 0 0 51 downcast from ReferenceCount to TypedReferenceCount 75 TypedReferenceCount *ReferenceCount::downcast_to_TypedReferenceCount(void); 932 14 get_class_type 0 4 1295 35 TypedReferenceCount::get_class_type 0 1 296 0 60 static TypeHandle TypedReferenceCount::get_class_type(void); 933 20 ~TypedReferenceCount 0 4 1295 41 TypedReferenceCount::~TypedReferenceCount 0 0 0 48 TypedReferenceCount::~TypedReferenceCount(void); 934 13 FileReference 0 4 1294 28 FileReference::FileReference 0 2 292 293 10 /** * */ 132 inline FileReference::FileReference(Filename const &filename); inline FileReference::FileReference(FileReference const &) = default; 935 12 get_filename 0 4 1294 27 FileReference::get_filename 0 1 294 49 /** * Returns the filename of the reference. */ 63 inline Filename const &FileReference::get_filename(void) const; 936 14 get_class_type 0 4 1294 29 FileReference::get_class_type 0 1 295 0 54 static TypeHandle FileReference::get_class_type(void); 937 14 ~FileReference 0 4 1294 29 FileReference::~FileReference 0 0 0 36 FileReference::~FileReference(void); 938 14 encrypt_string 0 1 0 14 encrypt_string 0 1 619 0 171 std::string encrypt_string(std::string const &source, std::string const &password, std::string const &algorithm = string(), int key_length = -1, int iteration_count = -1); 939 14 decrypt_string 0 1 0 14 decrypt_string 0 1 620 0 83 std::string decrypt_string(std::string const &source, std::string const &password); 940 12 encrypt_file 0 1 0 12 encrypt_file 0 1 621 0 181 bool encrypt_file(Filename const &source, Filename const &dest, std::string const &password, std::string const &algorithm = string(), int key_length = -1, int iteration_count = -1); 941 12 decrypt_file 0 1 0 12 decrypt_file 0 1 622 0 93 bool decrypt_file(Filename const &source, Filename const &dest, std::string const &password); 942 14 encrypt_stream 0 1 0 14 encrypt_stream 0 1 623 0 179 bool encrypt_stream(std::istream &source, std::ostream &dest, std::string const &password, std::string const &algorithm = string(), int key_length = -1, int iteration_count = -1); 943 14 decrypt_stream 0 1 0 14 decrypt_stream 0 1 624 0 91 bool decrypt_stream(std::istream &source, std::ostream &dest, std::string const &password); 944 13 error_to_text 0 1 0 13 error_to_text 0 1 625 10 /** * */ 45 std::string error_to_text(ErrorUtilCode err); 945 15 get_write_error 0 1 0 15 get_write_error 0 1 626 0 26 int get_write_error(void); 946 19 handle_socket_error 0 1 0 19 handle_socket_error 0 1 627 10 /** * */ 38 std::string handle_socket_error(void); 947 17 get_network_error 0 1 0 17 get_network_error 0 1 628 0 28 int get_network_error(void); 948 7 Ramfile 0 4 1299 16 Ramfile::Ramfile 0 2 299 300 10 /** * */ 82 inline Ramfile::Ramfile(void); inline Ramfile::Ramfile(Ramfile const &) = default; 949 4 seek 0 4 1299 13 Ramfile::seek 0 1 301 130 /** * Moves the data pointer to the indicated byte position. It is not an error * to move the pointer past the end of data. */ 43 inline void Ramfile::seek(std::size_t pos); 950 4 tell 0 4 1299 13 Ramfile::tell 0 1 302 106 /** * Returns the current data pointer position as a byte offset from the * beginning of the stream. */ 45 inline std::size_t Ramfile::tell(void) const; 951 4 read 0 4 1299 13 Ramfile::read 0 1 303 319 /** * 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. */ 44 PyObject *Ramfile::read(std::size_t length); 952 8 readline 0 4 1299 17 Ramfile::readline 0 1 304 303 /** * 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. */ 34 PyObject *Ramfile::readline(void); 953 9 readlines 0 4 1299 18 Ramfile::readlines 0 1 305 0 35 PyObject *Ramfile::readlines(void); 954 8 get_data 0 4 1299 17 Ramfile::get_data 0 1 306 101 /** * Returns the entire buffer contents as a string, regardless of the current * data pointer. */ 40 PyObject *Ramfile::get_data(void) const; 955 13 get_data_size 0 4 1299 22 Ramfile::get_data_size 0 1 307 58 /** * Returns the size of the entire buffer contents. */ 54 inline std::size_t Ramfile::get_data_size(void) const; 956 5 clear 0 4 1299 14 Ramfile::clear 0 1 308 47 /** * Empties the current buffer contents. */ 33 inline void Ramfile::clear(void); 957 8 ~Ramfile 0 4 1299 17 Ramfile::~Ramfile 0 0 0 24 Ramfile::~Ramfile(void); 958 7 HashVal 0 4 1300 16 HashVal::HashVal 0 2 309 310 22 /** * */ /** * */ 76 inline HashVal::HashVal(void); inline HashVal::HashVal(HashVal const ©); 959 10 operator = 0 4 1300 19 HashVal::operator = 0 1 311 0 53 inline void HashVal::operator =(HashVal const ©); 960 11 operator == 0 4 1300 20 HashVal::operator == 0 1 312 0 61 inline bool HashVal::operator ==(HashVal const &other) const; 961 11 operator != 0 4 1300 20 HashVal::operator != 0 1 313 0 61 inline bool HashVal::operator !=(HashVal const &other) const; 962 10 operator < 0 4 1300 19 HashVal::operator < 0 1 314 0 60 inline bool HashVal::operator <(HashVal const &other) const; 963 10 compare_to 0 4 1300 19 HashVal::compare_to 0 1 315 10 /** * */ 59 inline int HashVal::compare_to(HashVal const &other) const; 964 10 merge_with 0 4 1300 19 HashVal::merge_with 0 1 316 86 /** * Generates a new HashVal representing the xor of this one and the other one. */ 54 inline void HashVal::merge_with(HashVal const &other); 965 10 output_dec 0 4 1300 19 HashVal::output_dec 0 1 317 65 /** * Outputs the HashVal as four unsigned decimal integers. */ 57 inline void HashVal::output_dec(std::ostream &out) const; 966 9 input_dec 0 4 1300 18 HashVal::input_dec 0 1 318 64 /** * Inputs the HashVal as four unsigned decimal integers. */ 49 inline void HashVal::input_dec(std::istream &in); 967 10 output_hex 0 4 1300 19 HashVal::output_hex 0 1 319 64 /** * Outputs the HashVal as a 32-digit hexadecimal number. */ 50 void HashVal::output_hex(std::ostream &out) const; 968 9 input_hex 0 4 1300 18 HashVal::input_hex 0 1 320 63 /** * Inputs the HashVal as a 32-digit hexadecimal number. */ 42 void HashVal::input_hex(std::istream &in); 969 13 output_binary 0 4 1300 22 HashVal::output_binary 0 1 321 128 /** * Outputs the HashVal as a binary stream of bytes in order. This is not the * same order generated by write_stream(). */ 53 void HashVal::output_binary(std::ostream &out) const; 970 12 input_binary 0 4 1300 21 HashVal::input_binary 0 1 322 125 /** * Inputs the HashVal as a binary stream of bytes in order. This is not the * same order expected by read_stream(). */ 45 void HashVal::input_binary(std::istream &in); 971 6 output 0 4 1300 15 HashVal::output 0 1 323 10 /** * */ 53 inline void HashVal::output(std::ostream &out) const; 972 6 as_dec 0 4 1300 15 HashVal::as_dec 0 1 324 69 /** * Returns the HashVal as a string with four decimal numbers. */ 40 std::string HashVal::as_dec(void) const; 973 12 set_from_dec 0 4 1300 21 HashVal::set_from_dec 0 1 325 112 /** * Sets the HashVal from a string with four decimal numbers. Returns true if * valid, false otherwise. */ 52 bool HashVal::set_from_dec(std::string const &text); 974 6 as_hex 0 4 1300 15 HashVal::as_hex 0 1 326 63 /** * Returns the HashVal as a 32-byte hexadecimal string. */ 40 std::string HashVal::as_hex(void) const; 975 12 set_from_hex 0 4 1300 21 HashVal::set_from_hex 0 1 327 111 /** * Sets the HashVal from a 32-byte hexademical string. Returns true if * successful, false otherwise. */ 52 bool HashVal::set_from_hex(std::string const &text); 976 6 as_bin 0 4 1300 15 HashVal::as_bin 0 1 328 58 /** * Returns the HashVal as a 16-byte binary string. */ 41 vector_uchar HashVal::as_bin(void) const; 977 12 set_from_bin 0 4 1300 21 HashVal::set_from_bin 0 1 329 106 /** * Sets the HashVal from a 16-byte binary string. Returns true if successful, * false otherwise. */ 53 bool HashVal::set_from_bin(vector_uchar const &text); 978 14 write_datagram 0 4 1300 23 HashVal::write_datagram 0 1 330 10 /** * */ 65 inline void HashVal::write_datagram(Datagram &destination) const; 979 13 read_datagram 0 4 1300 22 HashVal::read_datagram 0 1 331 10 /** * */ 61 inline void HashVal::read_datagram(DatagramIterator &source); 980 12 write_stream 0 4 1300 21 HashVal::write_stream 0 1 332 10 /** * */ 67 inline void HashVal::write_stream(StreamWriter &destination) const; 981 11 read_stream 0 4 1300 20 HashVal::read_stream 0 1 333 10 /** * */ 55 inline void HashVal::read_stream(StreamReader &source); 982 9 hash_file 0 4 1300 18 HashVal::hash_file 0 1 334 232 /** * 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); 983 11 hash_stream 0 4 1300 20 HashVal::hash_stream 0 1 335 232 /** * 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. */ 48 bool HashVal::hash_stream(std::istream &stream); 984 12 hash_ramfile 0 4 1300 21 HashVal::hash_ramfile 0 1 336 178 /** * 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); 985 11 hash_string 0 4 1300 20 HashVal::hash_string 0 1 337 178 /** * 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_string(std::string const &data); 986 10 hash_bytes 0 4 1300 19 HashVal::hash_bytes 0 1 338 178 /** * 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_bytes(vector_uchar const &data); 987 11 hash_buffer 0 4 1300 20 HashVal::hash_buffer 0 1 339 178 /** * 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); 988 8 ~HashVal 0 4 1300 17 HashVal::~HashVal 0 0 0 24 HashVal::~HashVal(void); 989 19 MemoryUsagePointers 0 4 1301 40 MemoryUsagePointers::MemoryUsagePointers 0 2 340 341 10 /** * */ 135 MemoryUsagePointers::MemoryUsagePointers(void); inline MemoryUsagePointers::MemoryUsagePointers(MemoryUsagePointers const &) = default; 990 20 ~MemoryUsagePointers 0 4 1301 41 MemoryUsagePointers::~MemoryUsagePointers 0 0 10 /** * */ 48 MemoryUsagePointers::~MemoryUsagePointers(void); 991 16 get_num_pointers 0 4 1301 37 MemoryUsagePointers::get_num_pointers 0 1 342 53 /** * Returns the number of pointers in the set. */ 62 std::size_t MemoryUsagePointers::get_num_pointers(void) const; 992 11 get_pointer 0 4 1301 32 MemoryUsagePointers::get_pointer 0 1 343 46 /** * Returns the nth pointer of the set. */ 70 ReferenceCount *MemoryUsagePointers::get_pointer(std::size_t n) const; 993 17 get_typed_pointer 0 4 1301 38 MemoryUsagePointers::get_typed_pointer 0 1 344 175 /** * 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 * nullptr. */ 73 TypedObject *MemoryUsagePointers::get_typed_pointer(std::size_t n) const; 994 8 get_type 0 4 1301 29 MemoryUsagePointers::get_type 0 1 345 70 /** * Returns the actual type of the nth pointer, if it is known. */ 62 TypeHandle MemoryUsagePointers::get_type(std::size_t n) const; 995 13 get_type_name 0 4 1301 34 MemoryUsagePointers::get_type_name 0 1 346 68 /** * Returns the type name of the nth pointer, if it is known. */ 68 std::string MemoryUsagePointers::get_type_name(std::size_t n) const; 996 7 get_age 0 4 1301 28 MemoryUsagePointers::get_age 0 1 347 197 /** * 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(). */ 57 double MemoryUsagePointers::get_age(std::size_t n) const; 997 18 get_python_pointer 0 4 1301 39 MemoryUsagePointers::get_python_pointer 0 1 348 0 71 PyObject *MemoryUsagePointers::get_python_pointer(std::size_t n) const; 998 5 clear 0 4 1301 26 MemoryUsagePointers::clear 0 1 349 39 /** * Empties the set of pointers. */ 38 void MemoryUsagePointers::clear(void); 999 6 output 0 4 1301 27 MemoryUsagePointers::output 0 1 350 10 /** * */ 58 void MemoryUsagePointers::output(std::ostream &out) const; 1000 10 ISubStream 0 4 1302 22 ISubStream::ISubStream 0 2 351 352 22 /** * */ /** * */ 142 inline ISubStream::ISubStream(void); inline explicit ISubStream::ISubStream(IStreamWrapper *source, std::streamoff start, std::streamoff end); 1001 4 open 0 4 1302 16 ISubStream::open 0 1 353 391 /** * 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. */ 102 inline ISubStream &ISubStream::open(IStreamWrapper *source, std::streamoff start, std::streamoff end); 1002 5 close 0 4 1302 17 ISubStream::close 0 1 354 92 /** * Resets the SubStream to empty, but does not actually close the source * istream. */ 43 inline ISubStream &ISubStream::close(void); 1003 11 ~ISubStream 0 4 1302 23 ISubStream::~ISubStream 0 0 0 30 ISubStream::~ISubStream(void); 1004 10 OSubStream 0 4 1304 22 OSubStream::OSubStream 0 2 355 356 22 /** * */ /** * */ 161 inline OSubStream::OSubStream(void); inline explicit OSubStream::OSubStream(OStreamWrapper *dest, std::streamoff start, std::streamoff end, bool append = false); 1005 4 open 0 4 1304 16 OSubStream::open 0 1 357 383 /** * 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. */ 121 inline OSubStream &OSubStream::open(OStreamWrapper *dest, std::streamoff start, std::streamoff end, bool append = false); 1006 5 close 0 4 1304 17 OSubStream::close 0 1 358 90 /** * Resets the SubStream to empty, but does not actually close the dest * ostream. */ 43 inline OSubStream &OSubStream::close(void); 1007 11 ~OSubStream 0 4 1304 23 OSubStream::~OSubStream 0 0 0 30 OSubStream::~OSubStream(void); 1008 9 SubStream 0 4 1306 20 SubStream::SubStream 0 2 359 360 22 /** * */ /** * */ 158 inline SubStream::SubStream(void); inline explicit SubStream::SubStream(StreamWrapper *nested, std::streamoff start, std::streamoff end, bool append = false); 1009 4 open 0 4 1306 15 SubStream::open 0 1 361 278 /** * 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. */ 120 inline SubStream &SubStream::open(StreamWrapper *nested, std::streamoff start, std::streamoff end, bool append = false); 1010 5 close 0 4 1306 16 SubStream::close 0 1 362 92 /** * Resets the SubStream to empty, but does not actually close the nested * ostream. */ 41 inline SubStream &SubStream::close(void); 1011 10 ~SubStream 0 4 1306 21 SubStream::~SubStream 0 0 0 28 SubStream::~SubStream(void); 1012 9 Multifile 0 4 1308 20 Multifile::Multifile 0 1 363 10 /** * */ 27 Multifile::Multifile(void); 1013 9 open_read 0 4 1308 20 Multifile::open_read 0 2 364 365 687 /** * 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. */ /** * 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. */ 214 bool Multifile::open_read(Filename const &multifile_name, std::streamoff const &offset = 0); bool Multifile::open_read(IStreamWrapper *multifile_stream, bool owns_pointer = false, std::streamoff const &offset = 0); 1014 10 open_write 0 4 1308 21 Multifile::open_write 0 2 366 367 755 /** * 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. */ /** * 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. */ 146 bool Multifile::open_write(Filename const &multifile_name); bool Multifile::open_write(std::ostream *multifile_stream, bool owns_pointer = false); 1015 15 open_read_write 0 4 1308 26 Multifile::open_read_write 0 2 368 369 727 /** * 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. */ /** * 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. */ 157 bool Multifile::open_read_write(Filename const &multifile_name); bool Multifile::open_read_write(std::iostream *multifile_stream, bool owns_pointer = false); 1016 5 close 0 4 1308 16 Multifile::close 0 1 370 169 /** * 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); 1017 18 get_multifile_name 0 4 1308 29 Multifile::get_multifile_name 0 1 371 69 /** * Returns the filename of the Multifile, if it is available. */ 65 inline Filename const &Multifile::get_multifile_name(void) const; 1018 18 set_multifile_name 0 4 1308 29 Multifile::set_multifile_name 0 1 372 209 /** * 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); 1019 13 is_read_valid 0 4 1308 24 Multifile::is_read_valid 0 1 373 154 /** * 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; 1020 14 is_write_valid 0 4 1308 25 Multifile::is_write_valid 0 1 374 162 /** * 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; 1021 12 needs_repack 0 4 1308 23 Multifile::needs_repack 0 1 375 118 /** * 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; 1022 13 get_timestamp 0 4 1308 24 Multifile::get_timestamp 0 1 376 299 /** * 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. */ 51 inline time_t Multifile::get_timestamp(void) const; 1023 20 set_record_timestamp 0 4 1308 31 Multifile::set_record_timestamp 0 1 377 529 /** * 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); 1024 20 get_record_timestamp 0 4 1308 31 Multifile::get_record_timestamp 0 1 378 137 /** * 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; 1025 16 set_scale_factor 0 4 1308 27 Multifile::set_scale_factor 0 1 379 782 /** * 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). */ 59 void Multifile::set_scale_factor(std::size_t scale_factor); 1026 16 get_scale_factor 0 4 1308 27 Multifile::get_scale_factor 0 1 380 92 /** * Returns the internal scale factor for this Multifile. See * set_scale_factor(). */ 59 inline std::size_t Multifile::get_scale_factor(void) const; 1027 19 set_encryption_flag 0 4 1308 30 Multifile::set_encryption_flag 0 1 381 461 /** * 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); 1028 19 get_encryption_flag 0 4 1308 30 Multifile::get_encryption_flag 0 1 382 163 /** * 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; 1029 23 set_encryption_password 0 4 1308 34 Multifile::set_encryption_password 0 1 383 369 /** * 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(). */ 87 inline void Multifile::set_encryption_password(std::string const &encryption_password); 1030 23 get_encryption_password 0 4 1308 34 Multifile::get_encryption_password 0 1 384 141 /** * Returns the password that will be used to encrypt subfiles subsequently * added to the multifile. See set_encryption_password(). */ 73 inline std::string const &Multifile::get_encryption_password(void) const; 1031 24 set_encryption_algorithm 0 4 1308 35 Multifile::set_encryption_algorithm 0 1 385 659 /** * 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(). */ 89 inline void Multifile::set_encryption_algorithm(std::string const &encryption_algorithm); 1032 24 get_encryption_algorithm 0 4 1308 35 Multifile::get_encryption_algorithm 0 1 386 96 /** * Returns the encryption algorithm that was specified by * set_encryption_algorithm(). */ 74 inline std::string const &Multifile::get_encryption_algorithm(void) const; 1033 25 set_encryption_key_length 0 4 1308 36 Multifile::set_encryption_key_length 0 1 387 611 /** * 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); 1034 25 get_encryption_key_length 0 4 1308 36 Multifile::get_encryption_key_length 0 1 388 108 /** * 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; 1035 30 set_encryption_iteration_count 0 4 1308 41 Multifile::set_encryption_iteration_count 0 1 389 740 /** * 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); 1036 30 get_encryption_iteration_count 0 4 1308 41 Multifile::get_encryption_iteration_count 0 1 390 84 /** * Returns the value that was specified by set_encryption_iteration_count(). */ 65 inline int Multifile::get_encryption_iteration_count(void) const; 1037 11 add_subfile 0 4 1308 22 Multifile::add_subfile 0 2 391 392 1397 /** * 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). * * Either 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. */ /** * 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. */ 237 std::string Multifile::add_subfile(std::string const &subfile_name, Filename const &filename, int compression_level); std::string Multifile::add_subfile(std::string const &subfile_name, std::istream *subfile_data, int compression_level); 1038 14 update_subfile 0 4 1308 25 Multifile::update_subfile 0 1 393 451 /** * 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. * * Either 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. */ 120 std::string Multifile::update_subfile(std::string const &subfile_name, Filename const &filename, int compression_level); 1039 13 add_signature 0 4 1308 24 Multifile::add_signature 0 2 394 395 3062 /** * 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. */ /** * 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. */ /** * 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. */ 230 bool Multifile::add_signature(Filename const &certificate, Filename const &chain, Filename const &pkey, std::string const &password = ""); bool Multifile::add_signature(Filename const &composite, std::string const &password = ""); 1040 18 get_num_signatures 0 4 1308 29 Multifile::get_num_signatures 0 1 396 555 /** * 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; 1041 26 get_signature_subject_name 0 4 1308 37 Multifile::get_signature_subject_name 0 1 397 352 /** * 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(). */ 63 std::string Multifile::get_signature_subject_name(int n) const; 1042 27 get_signature_friendly_name 0 4 1308 38 Multifile::get_signature_friendly_name 0 1 398 299 /** * 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(). */ 64 std::string Multifile::get_signature_friendly_name(int n) const; 1043 24 get_signature_public_key 0 4 1308 35 Multifile::get_signature_public_key 0 1 399 379 /** * 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(). */ 61 std::string Multifile::get_signature_public_key(int n) const; 1044 27 print_signature_certificate 0 4 1308 38 Multifile::print_signature_certificate 0 1 400 158 /** * Writes the certificate for the nth signature, in user-readable verbose * form, to the indicated stream. See the comments in get_num_signatures(). */ 76 void Multifile::print_signature_certificate(int n, std::ostream &out) const; 1045 27 write_signature_certificate 0 4 1308 38 Multifile::write_signature_certificate 0 1 401 140 /** * Writes the certificate for the nth signature, in PEM form, to the indicated * stream. See the comments in get_num_signatures(). */ 76 void Multifile::write_signature_certificate(int n, std::ostream &out) const; 1046 30 validate_signature_certificate 0 4 1308 41 Multifile::validate_signature_certificate 0 1 402 289 /** * 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; 1047 5 flush 0 4 1308 16 Multifile::flush 0 1 403 691 /** * 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); 1048 6 repack 0 4 1308 17 Multifile::repack 0 1 404 587 /** * 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); 1049 16 get_num_subfiles 0 4 1308 27 Multifile::get_num_subfiles 0 1 405 169 /** * 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; 1050 12 find_subfile 0 4 1308 23 Multifile::find_subfile 0 1 406 127 /** * Returns the index of the subfile with the indicated name, or -1 if the * named subfile is not within the Multifile. */ 67 int Multifile::find_subfile(std::string const &subfile_name) const; 1051 13 has_directory 0 4 1308 24 Multifile::has_directory 0 1 407 203 /** * 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/...". */ 69 bool Multifile::has_directory(std::string const &subfile_name) const; 1052 14 scan_directory 0 4 1308 25 Multifile::scan_directory 0 1 408 420 /** * 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. */ 95 bool Multifile::scan_directory(vector_string &contents, std::string const &subfile_name) const; 1053 14 remove_subfile 0 4 1308 25 Multifile::remove_subfile 0 2 409 410 912 /** * 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(). */ /** * 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(). */ 114 void Multifile::remove_subfile(int index); inline bool Multifile::remove_subfile(std::string const &subfile_name); 1054 16 get_subfile_name 0 4 1308 27 Multifile::get_subfile_name 0 1 411 47 /** * Returns the name of the nth subfile. */ 64 std::string const &Multifile::get_subfile_name(int index) const; 1055 18 get_subfile_length 0 4 1308 29 Multifile::get_subfile_length 0 1 412 170 /** * 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. */ 59 std::size_t Multifile::get_subfile_length(int index) const; 1056 21 get_subfile_timestamp 0 4 1308 32 Multifile::get_subfile_timestamp 0 1 413 270 /** * 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. */ 57 time_t Multifile::get_subfile_timestamp(int index) const; 1057 21 is_subfile_compressed 0 4 1308 32 Multifile::is_subfile_compressed 0 1 414 120 /** * 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; 1058 20 is_subfile_encrypted 0 4 1308 31 Multifile::is_subfile_encrypted 0 1 415 119 /** * 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; 1059 15 is_subfile_text 0 4 1308 26 Multifile::is_subfile_text 0 1 416 343 /** * 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; 1060 13 get_index_end 0 4 1308 24 Multifile::get_index_end 0 1 417 371 /** * 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. */ 52 std::streamoff Multifile::get_index_end(void) const; 1061 26 get_subfile_internal_start 0 4 1308 37 Multifile::get_subfile_internal_start 0 1 418 338 /** * 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). */ 70 std::streamoff Multifile::get_subfile_internal_start(int index) const; 1062 27 get_subfile_internal_length 0 4 1308 38 Multifile::get_subfile_internal_length 0 1 419 322 /** * 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. */ 68 std::size_t Multifile::get_subfile_internal_length(int index) const; 1063 12 read_subfile 0 4 1308 23 Multifile::read_subfile 0 1 420 253 /** * Returns a vector_uchar that contains the entire contents of the indicated * subfile. */ /** * Fills a string with the entire contents of the indicated subfile. */ /** * Fills a pvector with the entire contents of the indicated subfile. */ 55 inline vector_uchar Multifile::read_subfile(int index); 1064 17 open_read_subfile 0 4 1308 28 Multifile::open_read_subfile 0 1 421 937 /** * 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. */ /** * 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. */ 54 std::istream *Multifile::open_read_subfile(int index); 1065 18 close_read_subfile 0 4 1308 29 Multifile::close_read_subfile 0 1 422 246 /** * 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. */ 64 static void Multifile::close_read_subfile(std::istream *stream); 1066 15 extract_subfile 0 4 1308 26 Multifile::extract_subfile 0 1 423 68 /** * Extracts the nth subfile into a file with the given name. */ 69 bool Multifile::extract_subfile(int index, Filename const &filename); 1067 18 extract_subfile_to 0 4 1308 29 Multifile::extract_subfile_to 0 1 424 61 /** * Extracts the nth subfile to the indicated ostream. */ 65 bool Multifile::extract_subfile_to(int index, std::ostream &out); 1068 15 compare_subfile 0 4 1308 26 Multifile::compare_subfile 0 1 425 509 /** * 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); 1069 6 output 0 4 1308 17 Multifile::output 0 1 426 10 /** * */ 48 void Multifile::output(std::ostream &out) const; 1070 2 ls 0 4 1308 13 Multifile::ls 0 1 427 61 /** * Shows a list of all subfiles within the Multifile. */ 58 void Multifile::ls(std::ostream &out = ::std::cout) const; 1071 16 get_magic_number 0 4 1308 27 Multifile::get_magic_number 0 1 428 108 /** * Returns a string with the first n bytes written to a Multifile, to identify * it as a Multifile. */ 60 static inline std::string Multifile::get_magic_number(void); 1072 17 set_header_prefix 0 4 1308 28 Multifile::set_header_prefix 0 1 429 644 /** * 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). */ 68 void Multifile::set_header_prefix(std::string const &header_prefix); 1073 17 get_header_prefix 0 4 1308 28 Multifile::get_header_prefix 0 1 430 113 /** * Returns the string that preceded the Multifile header on the file, if any. * See set_header_prefix(). */ 67 inline std::string const &Multifile::get_header_prefix(void) const; 1074 7 Namable 0 4 1311 16 Namable::Namable 0 2 431 432 10 /** * */ 123 inline explicit Namable::Namable(std::string const &initial_name = ""); inline Namable::Namable(Namable const &) = default; 1075 8 set_name 0 4 1311 17 Namable::set_name 0 1 433 10 /** * */ 55 inline void Namable::set_name(std::string const &name); 1076 10 clear_name 0 4 1311 19 Namable::clear_name 0 1 434 46 /** * Resets the Namable's name to empty. */ 38 inline void Namable::clear_name(void); 1077 8 has_name 0 4 1311 17 Namable::has_name 0 1 435 94 /** * Returns true if the Namable has a nonempty name set, false if the name is * empty. */ 42 inline bool Namable::has_name(void) const; 1078 8 get_name 0 4 1311 17 Namable::get_name 0 1 436 10 /** * */ 56 inline std::string const &Namable::get_name(void) const; 1079 6 output 0 4 1311 15 Namable::output 0 1 437 251 // In the absence of any definition to the contrary, outputting a Namable // will write out its name. /** * Outputs the Namable. This function simply writes the name to the output * stream; most Namable derivatives will probably redefine this. */ 53 inline void Namable::output(std::ostream &out) const; 1080 14 get_class_type 0 4 1311 23 Namable::get_class_type 0 1 438 0 48 static TypeHandle Namable::get_class_type(void); 1081 8 ~Namable 0 4 1311 17 Namable::~Namable 0 0 0 24 Namable::~Namable(void); 1082 18 clear_certificates 0 4 1313 34 OpenSSLWrapper::clear_certificates 0 1 439 200 /** * Removes all the certificates from the global store, including the compiled- * in certificates loaded from ca_bundle_data.c. You can add new certificates * by calling load_certificates(). */ 46 void OpenSSLWrapper::clear_certificates(void); 1083 17 load_certificates 0 4 1313 33 OpenSSLWrapper::load_certificates 0 1 440 436 /** * Reads the PEM-formatted certificate(s) (delimited by -----BEGIN * CERTIFICATE----- and -----END CERTIFICATE-----) from the indicated file and * adds them to the global store object, retrieved via get_x509_store(). * * Returns the number of certificates read on success, or 0 on failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ 64 int OpenSSLWrapper::load_certificates(Filename const &filename); 1084 30 load_certificates_from_pem_ram 0 4 1313 46 OpenSSLWrapper::load_certificates_from_pem_ram 0 2 441 442 754 /** * Reads a chain of trusted certificates from the indicated data buffer and * adds them to the X509_STORE object. The data buffer should be PEM- * formatted. Returns the number of certificates read on success, or 0 on * failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ /** * Reads a chain of trusted certificates from the indicated data buffer and * adds them to the X509_STORE object. The data buffer should be PEM- * formatted. Returns the number of certificates read on success, or 0 on * failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ 176 int OpenSSLWrapper::load_certificates_from_pem_ram(char const *data, std::size_t data_size); inline int OpenSSLWrapper::load_certificates_from_pem_ram(std::string const &data); 1085 30 load_certificates_from_der_ram 0 4 1313 46 OpenSSLWrapper::load_certificates_from_der_ram 0 2 443 444 754 /** * Reads a chain of trusted certificates from the indicated data buffer and * adds them to the X509_STORE object. The data buffer should be DER- * formatted. Returns the number of certificates read on success, or 0 on * failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ /** * Reads a chain of trusted certificates from the indicated data buffer and * adds them to the X509_STORE object. The data buffer should be DER- * formatted. Returns the number of certificates read on success, or 0 on * failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ 176 int OpenSSLWrapper::load_certificates_from_der_ram(char const *data, std::size_t data_size); inline int OpenSSLWrapper::load_certificates_from_der_ram(std::string const &data); 1086 14 get_x509_store 0 4 1313 30 OpenSSLWrapper::get_x509_store 0 1 445 378 /** * Returns the global X509_STORE object. * * It has to be a global object, because OpenSSL seems to store some global * pointers associated with this object whether you want it to or not, and * keeping independent copies of a local X509_STORE object doesn't seem to * work that well. So, we have one store that keeps all certificates the * application might need. */ 49 X509_STORE *OpenSSLWrapper::get_x509_store(void); 1087 17 notify_ssl_errors 0 4 1313 33 OpenSSLWrapper::notify_ssl_errors 0 1 446 277 /** * A convenience function that is itself a wrapper around the OpenSSL * convenience function to output the recent OpenSSL errors. This function * sends the error string to express_cat.warning(). If REPORT_OPENSSL_ERRORS * is not defined, the function does nothing. */ 45 void OpenSSLWrapper::notify_ssl_errors(void); 1088 23 notify_debug_ssl_errors 0 4 1313 39 OpenSSLWrapper::notify_debug_ssl_errors 0 1 447 84 /** * As notify_ssl_errors(), but sends the output to debug instead of warning. */ 51 void OpenSSLWrapper::notify_debug_ssl_errors(void); 1089 14 get_global_ptr 0 4 1313 30 OpenSSLWrapper::get_global_ptr 0 1 448 10 /** * */ 60 static OpenSSLWrapper *OpenSSLWrapper::get_global_ptr(void); 1090 11 SubfileInfo 0 4 1314 24 SubfileInfo::SubfileInfo 0 4 449 450 451 452 46 /** * */ /** * */ /** * */ /** * */ 321 inline SubfileInfo::SubfileInfo(void); inline explicit SubfileInfo::SubfileInfo(FileReference const *file, std::streamoff start, std::streamsize size); inline explicit SubfileInfo::SubfileInfo(Filename const &filename, std::streamoff start, std::streamsize size); inline SubfileInfo::SubfileInfo(SubfileInfo const ©); 1091 10 operator = 0 4 1314 23 SubfileInfo::operator = 0 1 453 0 61 inline void SubfileInfo::operator =(SubfileInfo const ©); 1092 8 is_empty 0 4 1314 21 SubfileInfo::is_empty 0 1 454 98 /** * Returns true if this SubfileInfo doesn't define any file, false if it has * real data. */ 46 inline bool SubfileInfo::is_empty(void) const; 1093 8 get_file 0 4 1314 21 SubfileInfo::get_file 0 1 455 63 /** * Returns the FileReference that represents this file. */ 62 inline FileReference const *SubfileInfo::get_file(void) const; 1094 12 get_filename 0 4 1314 25 SubfileInfo::get_filename 0 1 456 38 /** * A shortcut to the filename. */ 61 inline Filename const &SubfileInfo::get_filename(void) const; 1095 9 get_start 0 4 1314 22 SubfileInfo::get_start 0 1 457 77 /** * Returns the offset within the file at which this file data begins. */ 57 inline std::streamoff SubfileInfo::get_start(void) const; 1096 8 get_size 0 4 1314 21 SubfileInfo::get_size 0 1 458 115 /** * Returns the number of consecutive bytes, beginning at get_start(), that * correspond to this file data. */ 57 inline std::streamsize SubfileInfo::get_size(void) const; 1097 6 output 0 4 1314 19 SubfileInfo::output 0 1 459 10 /** * */ 50 void SubfileInfo::output(std::ostream &out) const; 1098 12 ~SubfileInfo 0 4 1314 25 SubfileInfo::~SubfileInfo 0 0 0 32 SubfileInfo::~SubfileInfo(void); 1099 15 get_file_system 0 6 1315 28 VirtualFile::get_file_system 0 1 460 0 72 virtual VirtualFileSystem *VirtualFile::get_file_system(void) const = 0; 1100 12 get_filename 0 6 1315 25 VirtualFile::get_filename 0 1 461 0 59 virtual Filename VirtualFile::get_filename(void) const = 0; 1101 21 get_original_filename 0 4 1315 34 VirtualFile::get_original_filename 0 1 462 166 /** * 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; 1102 8 has_file 0 6 1315 21 VirtualFile::has_file 0 1 463 61 /** * Returns true if this file exists, false otherwise. */ 47 virtual bool VirtualFile::has_file(void) const; 1103 12 is_directory 0 6 1315 25 VirtualFile::is_directory 0 1 464 117 /** * Returns true if this file represents a directory (and scan_directory() may * be called), false otherwise. */ 51 virtual bool VirtualFile::is_directory(void) const; 1104 15 is_regular_file 0 6 1315 28 VirtualFile::is_regular_file 0 1 465 115 /** * 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; 1105 11 is_writable 0 6 1315 24 VirtualFile::is_writable 0 1 466 153 /** * 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; 1106 11 delete_file 0 6 1315 24 VirtualFile::delete_file 0 1 467 199 /** * 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); 1107 11 rename_file 0 6 1315 24 VirtualFile::rename_file 0 1 468 589 /** * 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); 1108 9 copy_file 0 6 1315 22 VirtualFile::copy_file 0 1 469 123 /** * 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); 1109 14 scan_directory 0 4 1315 27 VirtualFile::scan_directory 0 1 470 247 /** * 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; 1110 6 output 0 4 1315 19 VirtualFile::output 0 1 471 10 /** * */ 50 void VirtualFile::output(std::ostream &out) const; 1111 2 ls 0 4 1315 15 VirtualFile::ls 0 1 472 66 /** * If the file represents a directory, lists its contents. */ 60 void VirtualFile::ls(std::ostream &out = ::std::cout) const; 1112 6 ls_all 0 4 1315 19 VirtualFile::ls_all 0 1 473 113 /** * If the file represents a directory, recursively lists its contents and * those of all subdirectories. */ 64 void VirtualFile::ls_all(std::ostream &out = ::std::cout) const; 1113 9 read_file 0 4 1315 22 VirtualFile::read_file 0 1 474 352 /** * Returns the entire contents of the file as a string. */ /** * Fills up the indicated string with the contents of the file, if it is a * regular file. Returns true on success, false otherwise. */ /** * Fills up the indicated pvector with the contents of the file, if it is a * regular file. Returns true on success, false otherwise. */ 57 PyObject *VirtualFile::read_file(bool auto_unwrap) const; 1114 14 open_read_file 0 6 1315 27 VirtualFile::open_read_file 0 1 475 179 /** * 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. */ 74 virtual std::istream *VirtualFile::open_read_file(bool auto_unwrap) const; 1115 15 close_read_file 0 6 1315 28 VirtualFile::close_read_file 0 1 476 243 /** * 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. */ 70 virtual void VirtualFile::close_read_file(std::istream *stream) const; 1116 19 was_read_successful 0 6 1315 32 VirtualFile::was_read_successful 0 1 477 324 /** * 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; 1117 10 write_file 0 4 1315 23 VirtualFile::write_file 0 1 478 197 /** * Writes the entire contents of the file as a string, if it is writable. */ /** * Writes the indicated data to the file, if it is writable. Returns true on * success, false otherwise. */ 66 PyObject *VirtualFile::write_file(PyObject *data, bool auto_wrap); 1118 15 open_write_file 0 6 1315 28 VirtualFile::open_write_file 0 1 479 179 /** * 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. */ 82 virtual std::ostream *VirtualFile::open_write_file(bool auto_wrap, bool truncate); 1119 16 open_append_file 0 6 1315 29 VirtualFile::open_append_file 0 1 480 180 /** * 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(). */ 58 virtual std::ostream *VirtualFile::open_append_file(void); 1120 16 close_write_file 0 6 1315 29 VirtualFile::close_write_file 0 1 481 244 /** * 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 virtual void VirtualFile::close_write_file(std::ostream *stream); 1121 20 open_read_write_file 0 6 1315 33 VirtualFile::open_read_write_file 0 1 482 180 /** * 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. */ 72 virtual std::iostream *VirtualFile::open_read_write_file(bool truncate); 1122 21 open_read_append_file 0 6 1315 34 VirtualFile::open_read_append_file 0 1 483 194 /** * 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(). */ 64 virtual std::iostream *VirtualFile::open_read_append_file(void); 1123 21 close_read_write_file 0 6 1315 34 VirtualFile::close_read_write_file 0 1 484 250 /** * 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 virtual void VirtualFile::close_read_write_file(std::iostream *stream); 1124 13 get_file_size 0 6 1315 26 VirtualFile::get_file_size 0 2 485 486 329 /** * 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. */ /** * Returns the current size on disk (or wherever it is) of the file before it * has been opened. */ 143 virtual std::streamsize VirtualFile::get_file_size(std::istream *stream) const; virtual std::streamsize VirtualFile::get_file_size(void) const; 1125 13 get_timestamp 0 6 1315 26 VirtualFile::get_timestamp 0 1 487 434 /** * 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. */ 54 virtual time_t VirtualFile::get_timestamp(void) const; 1126 15 get_system_info 0 6 1315 28 VirtualFile::get_system_info 0 1 488 330 /** * 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); 1127 14 get_class_type 0 4 1315 27 VirtualFile::get_class_type 0 1 489 0 52 static TypeHandle VirtualFile::get_class_type(void); 1128 12 ~VirtualFile 0 4 1315 25 VirtualFile::~VirtualFile 0 0 0 32 VirtualFile::~VirtualFile(void); 1129 14 get_class_type 0 4 1316 36 VirtualFileComposite::get_class_type 0 1 490 0 61 static TypeHandle VirtualFileComposite::get_class_type(void); 1130 21 ~VirtualFileComposite 0 4 1316 43 VirtualFileComposite::~VirtualFileComposite 0 0 0 50 VirtualFileComposite::~VirtualFileComposite(void); 1131 15 get_file_system 0 4 1317 33 VirtualFileMount::get_file_system 0 1 491 68 /** * Returns the file system this mount object is attached to. */ 72 inline VirtualFileSystem *VirtualFileMount::get_file_system(void) const; 1132 15 get_mount_point 0 4 1317 33 VirtualFileMount::get_mount_point 0 1 492 161 /** * 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; 1133 15 get_mount_flags 0 4 1317 33 VirtualFileMount::get_mount_flags 0 1 493 100 /** * Returns the set of flags passed by the user to the * VirtualFileSystem::mount() command. */ 57 inline int VirtualFileMount::get_mount_flags(void) const; 1134 6 output 0 6 1317 24 VirtualFileMount::output 0 1 494 10 /** * */ 63 virtual void VirtualFileMount::output(std::ostream &out) const; 1135 5 write 0 6 1317 23 VirtualFileMount::write 0 1 495 10 /** * */ 62 virtual void VirtualFileMount::write(std::ostream &out) const; 1136 14 get_class_type 0 4 1317 32 VirtualFileMount::get_class_type 0 1 496 0 57 static TypeHandle VirtualFileMount::get_class_type(void); 1137 25 VirtualFileMountMultifile 0 4 1318 52 VirtualFileMountMultifile::VirtualFileMountMultifile 0 1 497 10 /** * */ 82 inline VirtualFileMountMultifile::VirtualFileMountMultifile(Multifile *multifile); 1138 13 get_multifile 0 4 1318 40 VirtualFileMountMultifile::get_multifile 0 1 498 76 /** * Returns the Multifile pointer that this mount object is based on. */ 71 inline Multifile *VirtualFileMountMultifile::get_multifile(void) const; 1139 14 get_class_type 0 4 1318 41 VirtualFileMountMultifile::get_class_type 0 1 499 0 66 static TypeHandle VirtualFileMountMultifile::get_class_type(void); 1140 23 VirtualFileMountRamdisk 0 4 1319 48 VirtualFileMountRamdisk::VirtualFileMountRamdisk 0 1 500 10 /** * */ 55 VirtualFileMountRamdisk::VirtualFileMountRamdisk(void); 1141 14 get_class_type 0 4 1319 39 VirtualFileMountRamdisk::get_class_type 0 1 501 0 64 static TypeHandle VirtualFileMountRamdisk::get_class_type(void); 1142 24 ~VirtualFileMountRamdisk 0 4 1319 49 VirtualFileMountRamdisk::~VirtualFileMountRamdisk 0 0 0 56 VirtualFileMountRamdisk::~VirtualFileMountRamdisk(void); 1143 22 VirtualFileMountSystem 0 4 1320 46 VirtualFileMountSystem::VirtualFileMountSystem 0 1 502 10 /** * */ 89 inline VirtualFileMountSystem::VirtualFileMountSystem(Filename const &physical_filename); 1144 21 get_physical_filename 0 4 1320 45 VirtualFileMountSystem::get_physical_filename 0 1 503 112 /** * 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; 1145 14 get_class_type 0 4 1320 38 VirtualFileMountSystem::get_class_type 0 1 504 0 63 static TypeHandle VirtualFileMountSystem::get_class_type(void); 1146 23 ~VirtualFileMountSystem 0 4 1320 47 VirtualFileMountSystem::~VirtualFileMountSystem 0 0 0 54 VirtualFileMountSystem::~VirtualFileMountSystem(void); 1147 9 get_mount 0 4 1321 28 VirtualFileSimple::get_mount 0 1 505 69 /** * Returns the VirtualFileMount this file is associated with. */ 66 inline VirtualFileMount *VirtualFileSimple::get_mount(void) const; 1148 19 is_implicit_pz_file 0 4 1321 38 VirtualFileSimple::is_implicit_pz_file 0 1 506 174 /** * 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; 1149 14 get_class_type 0 4 1321 33 VirtualFileSimple::get_class_type 0 1 507 0 58 static TypeHandle VirtualFileSimple::get_class_type(void); 1150 18 ~VirtualFileSimple 0 4 1321 37 VirtualFileSimple::~VirtualFileSimple 0 0 0 44 VirtualFileSimple::~VirtualFileSimple(void); 1151 13 TemporaryFile 0 4 1322 28 TemporaryFile::TemporaryFile 0 2 508 509 10 /** * */ 141 inline explicit TemporaryFile::TemporaryFile(Filename const &filename); inline TemporaryFile::TemporaryFile(TemporaryFile const &) = default; 1152 14 get_class_type 0 4 1322 29 TemporaryFile::get_class_type 0 1 510 0 54 static TypeHandle TemporaryFile::get_class_type(void); 1153 17 IDecompressStream 0 4 1323 36 IDecompressStream::IDecompressStream 0 2 511 512 22 /** * */ /** * */ 144 inline IDecompressStream::IDecompressStream(void); inline explicit IDecompressStream::IDecompressStream(std::istream *source, bool owns_source); 1154 4 open 0 4 1323 23 IDecompressStream::open 0 1 513 10 /** * */ 90 inline IDecompressStream &IDecompressStream::open(std::istream *source, bool owns_source); 1155 5 close 0 4 1323 24 IDecompressStream::close 0 1 514 118 /** * Resets the ZStream to empty, but does not actually close the source istream * unless owns_source was true. */ 57 inline IDecompressStream &IDecompressStream::close(void); 1156 18 ~IDecompressStream 0 4 1323 37 IDecompressStream::~IDecompressStream 0 0 0 44 IDecompressStream::~IDecompressStream(void); 1157 15 OCompressStream 0 4 1324 32 OCompressStream::OCompressStream 0 2 515 516 22 /** * */ /** * */ 159 inline OCompressStream::OCompressStream(void); inline explicit OCompressStream::OCompressStream(std::ostream *dest, bool owns_dest, int compression_level = 6); 1158 4 open 0 4 1324 21 OCompressStream::open 0 1 517 10 /** * */ 109 inline OCompressStream &OCompressStream::open(std::ostream *dest, bool owns_dest, int compression_level = 6); 1159 5 close 0 4 1324 22 OCompressStream::close 0 1 518 114 /** * Resets the ZStream to empty, but does not actually close the dest ostream * unless owns_dest was true. */ 53 inline OCompressStream &OCompressStream::close(void); 1160 16 ~OCompressStream 0 4 1324 33 OCompressStream::~OCompressStream 0 0 0 40 OCompressStream::~OCompressStream(void); 1161 13 get_num_files 0 4 1325 30 VirtualFileList::get_num_files 0 1 520 51 /** * Returns the number of files in the list. */ 62 inline std::size_t VirtualFileList::get_num_files(void) const; 1162 8 get_file 0 4 1325 25 VirtualFileList::get_file 0 1 521 44 /** * Returns the nth file in the list. */ 67 inline VirtualFile *VirtualFileList::get_file(std::size_t n) const; 1163 11 operator [] 0 4 1325 28 VirtualFileList::operator [] 0 1 522 44 /** * Returns the nth file in the list. */ 70 inline VirtualFile *VirtualFileList::operator [](std::size_t n) const; 1164 4 size 0 4 1325 21 VirtualFileList::size 0 1 523 51 /** * Returns the number of files in the list. */ 53 inline std::size_t VirtualFileList::size(void) const; 1165 11 operator += 0 4 1325 28 VirtualFileList::operator += 0 1 524 0 71 inline void VirtualFileList::operator +=(VirtualFileList const &other); 1166 10 operator + 0 4 1325 27 VirtualFileList::operator + 0 1 525 0 87 inline VirtualFileList VirtualFileList::operator +(VirtualFileList const &other) const; 1167 15 VirtualFileList 0 4 1325 32 VirtualFileList::VirtualFileList 0 1 519 10 /** * */ 75 inline VirtualFileList::VirtualFileList(VirtualFileList const &) = default; 1168 17 VirtualFileSystem 0 4 1326 36 VirtualFileSystem::VirtualFileSystem 0 1 526 10 /** * */ 43 VirtualFileSystem::VirtualFileSystem(void); 1169 18 ~VirtualFileSystem 0 4 1326 37 VirtualFileSystem::~VirtualFileSystem 0 0 10 /** * */ 44 VirtualFileSystem::~VirtualFileSystem(void); 1170 5 mount 0 4 1326 24 VirtualFileSystem::mount 0 3 527 528 529 1288 /** * Mounts the indicated Multifile at the given mount point. */ /** * 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. */ /** * 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. */ 328 bool VirtualFileSystem::mount(Multifile *multifile, Filename const &mount_point, int flags); bool VirtualFileSystem::mount(Filename const &physical_filename, Filename const &mount_point, int flags, std::string const &password = ""); bool VirtualFileSystem::mount(VirtualFileMount *mount, Filename const &mount_point, int flags); 1171 10 mount_loop 0 4 1326 29 VirtualFileSystem::mount_loop 0 1 530 587 /** * 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. */ 143 bool VirtualFileSystem::mount_loop(Filename const &virtual_filename, Filename const &mount_point, int flags, std::string const &password = ""); 1172 7 unmount 0 4 1326 26 VirtualFileSystem::unmount 0 3 531 532 533 419 /** * Unmounts all appearances of the indicated Multifile from the file system. * Returns the number of appearances unmounted. */ /** * Unmounts all appearances of the indicated directory name or multifile name * from the file system. Returns the number of appearances unmounted. */ /** * 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); 1173 13 unmount_point 0 4 1326 32 VirtualFileSystem::unmount_point 0 1 534 136 /** * 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); 1174 11 unmount_all 0 4 1326 30 VirtualFileSystem::unmount_all 0 1 535 96 /** * Unmounts all files from the file system. Returns the number of systems * unmounted. */ 41 int VirtualFileSystem::unmount_all(void); 1175 14 get_num_mounts 0 4 1326 33 VirtualFileSystem::get_num_mounts 0 1 536 65 /** * Returns the number of individual mounts in the system. */ 50 int VirtualFileSystem::get_num_mounts(void) const; 1176 9 get_mount 0 4 1326 28 VirtualFileSystem::get_mount 0 1 537 47 /** * Returns the nth mount in the system. */ 72 PointerTo< VirtualFileMount > VirtualFileSystem::get_mount(int n) const; 1177 5 clear 0 4 1329 40 PointerToBase< VirtualFileMount >::clear 0 1 577 0 59 inline void PointerToBase< VirtualFileMount >::clear(void); 1178 6 output 0 4 1329 41 PointerToBase< VirtualFileMount >::output 0 1 578 0 72 void PointerToBase< VirtualFileMount >::output(std::ostream &out) const; 1179 9 PointerTo 0 4 1328 40 PointerTo< VirtualFileMount >::PointerTo 0 4 568 569 570 571 0 353 inline constexpr PointerTo< VirtualFileMount >::PointerTo(void) noexcept = default; inline explicit constexpr PointerTo< VirtualFileMount >::PointerTo(decltype(nullptr) ) noexcept; inline PointerTo< VirtualFileMount >::PointerTo(VirtualFileMount *ptr) noexcept; inline PointerTo< VirtualFileMount >::PointerTo(PointerTo< VirtualFileMount > const ©); 1180 1 p 0 4 1328 32 PointerTo< VirtualFileMount >::p 0 1 572 289 // If your base class is a derivative of TypedObject, you might want to use // the DCAST macro defined in typedObject.h instead, e.g. DCAST(MyType, // ptr). This provides a clean downcast that doesn't require .p() or any // double-casting, and it can be run-time checked for correctness. 82 constexpr VirtualFileMount *PointerTo< VirtualFileMount >::p(void) const noexcept; 1181 10 operator = 0 4 1328 41 PointerTo< VirtualFileMount >::operator = 0 2 573 574 0 175 inline void PointerTo< VirtualFileMount >::operator =(VirtualFileMount *ptr); inline void PointerTo< VirtualFileMount >::operator =(PointerTo< VirtualFileMount > const ©); 1182 7 is_null 0 4 1328 38 PointerTo< VirtualFileMount >::is_null 0 1 575 0 63 inline bool PointerTo< VirtualFileMount >::is_null(void) const; 1183 5 clear 0 4 1328 36 PointerTo< VirtualFileMount >::clear 0 1 576 0 55 inline void PointerTo< VirtualFileMount >::clear(void); 1184 10 ~PointerTo 0 4 1328 41 PointerTo< VirtualFileMount >::~PointerTo 0 0 0 48 PointerTo< VirtualFileMount >::~PointerTo(void); 1185 0 0 0 0 0 0 0 0 0 1186 5 chdir 0 4 1326 24 VirtualFileSystem::chdir 0 1 538 171 /** * 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); 1187 7 get_cwd 0 4 1326 26 VirtualFileSystem::get_cwd 0 1 539 60 /** * Returns the current directory name. See chdir(). */ 48 Filename VirtualFileSystem::get_cwd(void) const; 1188 14 make_directory 0 4 1326 33 VirtualFileSystem::make_directory 0 1 540 263 /** * 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); 1189 19 make_directory_full 0 4 1326 38 VirtualFileSystem::make_directory_full 0 1 541 169 /** * 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); 1190 8 get_file 0 4 1326 27 VirtualFileSystem::get_file 0 1 542 537 /** * 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. */ 111 PointerTo< VirtualFile > VirtualFileSystem::get_file(Filename const &filename, bool status_only = false) const; 1191 11 create_file 0 4 1326 30 VirtualFileSystem::create_file 0 1 543 298 /** * 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); 1192 9 find_file 0 4 1326 28 VirtualFileSystem::find_file 0 1 544 173 /** * 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. */ 143 PointerTo< VirtualFile > VirtualFileSystem::find_file(Filename const &filename, DSearchPath const &searchpath, bool status_only = false) const; 1193 11 delete_file 0 4 1326 30 VirtualFileSystem::delete_file 0 1 545 208 /** * 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); 1194 11 rename_file 0 4 1326 30 VirtualFileSystem::rename_file 0 1 546 599 /** * 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); 1195 9 copy_file 0 4 1326 28 VirtualFileSystem::copy_file 0 1 547 131 /** * 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); 1196 16 resolve_filename 0 4 1326 35 VirtualFileSystem::resolve_filename 0 1 548 174 /** * 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. */ 147 bool VirtualFileSystem::resolve_filename(Filename &filename, DSearchPath const &searchpath, std::string const &default_extension = string()) const; 1197 14 find_all_files 0 4 1326 33 VirtualFileSystem::find_all_files 0 1 549 363 /** * 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; 1198 6 exists 0 4 1326 25 VirtualFileSystem::exists 0 1 550 71 /** * Convenience function; returns true if the named file exists. */ 70 inline bool VirtualFileSystem::exists(Filename const &filename) const; 1199 12 is_directory 0 4 1326 31 VirtualFileSystem::is_directory 0 1 551 93 /** * Convenience function; returns true if the named file exists and is a * directory. */ 76 inline bool VirtualFileSystem::is_directory(Filename const &filename) const; 1200 15 is_regular_file 0 4 1326 34 VirtualFileSystem::is_regular_file 0 1 552 96 /** * 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; 1201 14 scan_directory 0 4 1326 33 VirtualFileSystem::scan_directory 0 1 553 247 /** * 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; 1202 2 ls 0 4 1326 21 VirtualFileSystem::ls 0 1 554 80 /** * Convenience function; lists the files within the indicated directory. */ 66 inline void VirtualFileSystem::ls(Filename const &filename) const; 1203 6 ls_all 0 4 1326 25 VirtualFileSystem::ls_all 0 1 555 117 /** * Convenience function; lists the files within the indicated directory, and * all files below, recursively. */ 70 inline void VirtualFileSystem::ls_all(Filename const &filename) const; 1204 5 write 0 4 1326 24 VirtualFileSystem::write 0 1 556 75 /** * Print debugging information. (e.g. from Python or gdb prompt). */ 55 void VirtualFileSystem::write(std::ostream &out) const; 1205 14 get_global_ptr 0 4 1326 33 VirtualFileSystem::get_global_ptr 0 1 557 423 /** * 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); 1206 9 read_file 0 4 1326 28 VirtualFileSystem::read_file 0 1 558 1244 /** * Convenience function; returns the entire contents of the indicated file as * a string. * * If auto_unwrap is true, an explicitly-named .pz/.gz 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. */ /** * 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/.gz 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. */ /** * 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/.gz 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; 1207 14 open_read_file 0 4 1326 33 VirtualFileSystem::open_read_file 0 1 559 424 /** * 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. */ 98 std::istream *VirtualFileSystem::open_read_file(Filename const &filename, bool auto_unwrap) const; 1208 15 close_read_file 0 4 1326 34 VirtualFileSystem::close_read_file 0 1 560 243 /** * 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. */ 69 static void VirtualFileSystem::close_read_file(std::istream *stream); 1209 10 write_file 0 4 1326 29 VirtualFileSystem::write_file 0 1 561 409 /** * 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. */ /** * 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); 1210 15 open_write_file 0 4 1326 34 VirtualFileSystem::open_write_file 0 1 562 345 /** * 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. */ 106 std::ostream *VirtualFileSystem::open_write_file(Filename const &filename, bool auto_wrap, bool truncate); 1211 16 open_append_file 0 4 1326 35 VirtualFileSystem::open_append_file 0 1 563 180 /** * 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(). */ 76 std::ostream *VirtualFileSystem::open_append_file(Filename const &filename); 1212 16 close_write_file 0 4 1326 35 VirtualFileSystem::close_write_file 0 1 564 244 /** * 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. */ 70 static void VirtualFileSystem::close_write_file(std::ostream *stream); 1213 20 open_read_write_file 0 4 1326 39 VirtualFileSystem::open_read_write_file 0 1 565 169 /** * Convenience function; returns a newly allocated iostream if the file exists * and can be written, or NULL otherwise. Does not return an invalid * iostream. */ 96 std::iostream *VirtualFileSystem::open_read_write_file(Filename const &filename, bool truncate); 1214 21 open_read_append_file 0 4 1326 40 VirtualFileSystem::open_read_append_file 0 1 566 194 /** * 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(). */ 82 std::iostream *VirtualFileSystem::open_read_append_file(Filename const &filename); 1215 21 close_read_write_file 0 4 1326 40 VirtualFileSystem::close_read_write_file 0 1 567 250 /** * 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. */ 76 static void VirtualFileSystem::close_read_write_file(std::iostream *stream); 1216 13 get_long_time 0 4 1330 24 TrueClock::get_long_time 0 1 579 420 // 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. // 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. /** * */ 38 double TrueClock::get_long_time(void); 1217 14 get_short_time 0 4 1330 25 TrueClock::get_short_time 0 1 580 426 // 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. // 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. /** * */ 46 inline double TrueClock::get_short_time(void); 1218 18 get_short_raw_time 0 4 1330 29 TrueClock::get_short_raw_time 0 1 581 302 // 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. // 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. /** * */ 43 double TrueClock::get_short_raw_time(void); 1219 15 get_error_count 0 4 1330 26 TrueClock::get_error_count 0 1 582 369 /** * 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; 1220 14 get_global_ptr 0 4 1330 25 TrueClock::get_global_ptr 0 1 583 70 /** * Returns a pointer to the one TrueClock object in the world. */ 57 static inline TrueClock *TrueClock::get_global_ptr(void); 1221 16 set_cpu_affinity 0 4 1330 27 TrueClock::set_cpu_affinity 0 1 584 0 54 bool TrueClock::set_cpu_affinity(uint32_t mask) const; 1222 9 Patchfile 0 4 1332 20 Patchfile::Patchfile 0 2 585 586 111 /** * Create a patch file and initializes internal data */ /** * Create patch file with buffer to patch */ 86 Patchfile::Patchfile(void); explicit Patchfile::Patchfile(PointerTo< Buffer > buffer); 1223 10 ~Patchfile 0 4 1332 21 Patchfile::~Patchfile 0 0 10 /** * */ 28 Patchfile::~Patchfile(void); 1224 5 build 0 4 1332 16 Patchfile::build 0 1 587 359 /** * * 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); 1225 11 read_header 0 4 1332 22 Patchfile::read_header 0 1 588 193 /** * 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); 1226 8 initiate 0 4 1332 19 Patchfile::initiate 0 2 589 590 236 /** * Set up to apply the patch to the file (original file and patch are * destroyed in the process). */ /** * 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); 1227 3 run 0 4 1332 14 Patchfile::run 0 1 591 350 /** * 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); 1228 5 apply 0 4 1332 16 Patchfile::apply 0 2 592 593 311 /** * 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. */ /** * 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); 1229 12 get_progress 0 4 1332 23 Patchfile::get_progress 0 1 594 125 /** * Returns a value in the range 0..1, representing the amount of progress * through the patchfile, during a session. */ 55 inline PN_stdfloat Patchfile::get_progress(void) const; 1230 19 set_allow_multifile 0 4 1332 30 Patchfile::set_allow_multifile 0 1 595 362 /** * 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); 1231 19 get_allow_multifile 0 4 1332 30 Patchfile::get_allow_multifile 0 1 596 37 /** * See set_allow_multifile(). */ 49 inline bool Patchfile::get_allow_multifile(void); 1232 20 set_footprint_length 0 4 1332 31 Patchfile::set_footprint_length 0 1 597 10 /** * */ 56 inline void Patchfile::set_footprint_length(int length); 1233 20 get_footprint_length 0 4 1332 31 Patchfile::get_footprint_length 0 1 598 10 /** * */ 49 inline int Patchfile::get_footprint_length(void); 1234 22 reset_footprint_length 0 4 1332 33 Patchfile::reset_footprint_length 0 1 599 10 /** * */ 52 inline void Patchfile::reset_footprint_length(void); 1235 15 has_source_hash 0 4 1332 26 Patchfile::has_source_hash 0 1 600 145 /** * 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; 1236 15 get_source_hash 0 4 1332 26 Patchfile::get_source_hash 0 1 601 52 /** * Returns the MD5 hash for the source file. */ 61 inline HashVal const &Patchfile::get_source_hash(void) const; 1237 15 get_result_hash 0 4 1332 26 Patchfile::get_result_hash 0 1 602 78 /** * Returns the MD5 hash for the file after the patch has been applied. */ 61 inline HashVal const &Patchfile::get_result_hash(void) const; 1238 13 password_hash 0 1 0 13 password_hash 0 1 629 0 103 std::string password_hash(std::string const &password, std::string const &salt, int iters, int keylen); 1239 11 was_deleted 0 4 1336 30 WeakPointerToVoid::was_deleted 0 1 603 384 /** * Returns true if the object we are pointing to has been deleted, false * otherwise. If this returns true, it means that the pointer can not yet be * reused, but it does not guarantee that it can be safely accessed. See the * lock() method for a safe way to access the underlying pointer. * * This will always return true for a null pointer, unlike is_valid_pointer(). */ 55 inline bool WeakPointerToVoid::was_deleted(void) const; 1240 16 is_valid_pointer 0 4 1336 35 WeakPointerToVoid::is_valid_pointer 0 1 604 122 /** * Returns true if the pointer is not null and the object has not been * deleted. See was_deleted() for caveats. */ 60 inline bool WeakPointerToVoid::is_valid_pointer(void) const; 1241 18 ~WeakPointerToVoid 0 4 1336 37 WeakPointerToVoid::~WeakPointerToVoid 0 0 0 44 WeakPointerToVoid::~WeakPointerToVoid(void); 1242 16 set_string_value 0 4 1337 33 WindowsRegistry::set_string_value 0 1 607 302 /** * 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. */ 183 static bool WindowsRegistry::set_string_value(std::string const &key, std::string const &name, std::string const &value, WindowsRegistry::RegLevel rl = ::WindowsRegistry::rl_machine); 1243 13 set_int_value 0 4 1337 30 WindowsRegistry::set_int_value 0 1 608 142 /** * Sets the registry key to the indicated value as an integer. The registry * key must already exist prior to calling this function. */ 165 static bool WindowsRegistry::set_int_value(std::string const &key, std::string const &name, int value, WindowsRegistry::RegLevel rl = ::WindowsRegistry::rl_machine); 1244 12 get_key_type 0 4 1337 29 WindowsRegistry::get_key_type 0 1 609 115 /** * Returns the type of the indicated key, or T_none if the key is not known or * is some unsupported type. */ 170 static WindowsRegistry::Type WindowsRegistry::get_key_type(std::string const &key, std::string const &name, WindowsRegistry::RegLevel rl = ::WindowsRegistry::rl_machine); 1245 16 get_string_value 0 4 1337 33 WindowsRegistry::get_string_value 0 1 610 291 /** * 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. */ 198 static std::string WindowsRegistry::get_string_value(std::string const &key, std::string const &name, std::string const &default_value, WindowsRegistry::RegLevel rl = ::WindowsRegistry::rl_machine); 1246 13 get_int_value 0 4 1337 30 WindowsRegistry::get_int_value 0 1 611 206 /** * 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. */ 172 static int WindowsRegistry::get_int_value(std::string const &key, std::string const &name, int default_value, WindowsRegistry::RegLevel rl = ::WindowsRegistry::rl_machine); 1247 15 WindowsRegistry 0 4 1337 32 WindowsRegistry::WindowsRegistry 0 2 605 606 0 132 inline WindowsRegistry::WindowsRegistry(void) = default; inline WindowsRegistry::WindowsRegistry(WindowsRegistry const &) = default; 1248 16 ~WindowsRegistry 0 4 1337 33 WindowsRegistry::~WindowsRegistry 0 0 0 40 WindowsRegistry::~WindowsRegistry(void); 629 1 0 0 7 13 1344 648 0 0 1 4 copy 1 1342 2 0 0 7 13 1344 648 0 0 1 4 copy 1 1345 3 0 0 4 14 1347 0 0 0 1 4 this 3 1344 4 0 0 6 15 1279 0 0 0 1 4 this 3 1342 5 0 0 6 16 1331 0 0 0 2 4 this 3 1342 1 n 1 1279 6 0 0 6 17 1331 0 0 0 2 4 this 3 1342 1 n 1 1279 7 0 0 6 18 1348 0 0 0 1 4 this 3 1342 8 0 0 6 19 1348 0 0 0 3 4 this 3 1342 1 n 1 1279 5 count 1 1279 9 0 0 6 20 1281 0 0 0 1 4 this 3 1342 10 0 0 6 21 1281 0 0 0 1 4 this 3 1342 11 0 0 6 22 1279 0 0 0 2 4 this 3 1342 6 param0 0 1331 12 0 0 6 23 1281 0 0 0 3 4 this 3 1342 4 view 1 1351 5 flags 1 1281 13 0 0 4 24 1347 0 0 0 2 4 this 3 1342 4 view 1 1351 14 0 0 4 10 1347 0 0 0 1 4 this 3 1354 15 0 0 4 11 1347 0 0 0 2 4 this 3 1355 3 out 1 1357 16 0 0 6 7 1277 0 0 130 /** * Returns true if the PointerTo is a NULL pointer, false otherwise. (Direct * comparison to a NULL pointer also works.) */ 1 4 this 3 1358 17 0 0 6 8 1278 0 0 10 /** * */ 1 4 this 3 1358 18 0 0 7 33 1362 664 0 0 1 4 copy 1 1360 19 0 0 7 33 1362 664 0 0 1 4 copy 1 1363 20 0 0 4 34 1347 0 0 0 1 4 this 3 1362 21 0 0 6 35 1279 0 0 0 1 4 this 3 1360 22 0 0 6 36 1334 0 0 0 2 4 this 3 1360 1 n 1 1279 23 0 0 6 37 1334 0 0 0 2 4 this 3 1360 1 n 1 1279 24 0 0 6 38 1348 0 0 0 1 4 this 3 1360 25 0 0 6 39 1348 0 0 0 3 4 this 3 1360 1 n 1 1279 5 count 1 1279 26 0 0 6 40 1281 0 0 0 1 4 this 3 1360 27 0 0 6 41 1281 0 0 0 1 4 this 3 1360 28 0 0 6 42 1279 0 0 0 2 4 this 3 1360 6 param0 0 1334 29 0 0 6 43 1281 0 0 0 3 4 this 3 1360 4 view 1 1351 5 flags 1 1281 30 0 0 4 44 1347 0 0 0 2 4 this 3 1360 4 view 1 1351 31 0 0 4 30 1347 0 0 0 1 4 this 3 1365 32 0 0 4 31 1347 0 0 0 2 4 this 3 1366 3 out 1 1357 33 0 0 7 53 1370 680 0 0 1 4 copy 1 1368 34 0 0 7 53 1370 680 0 0 1 4 copy 1 1371 35 0 0 4 54 1347 0 0 0 1 4 this 3 1370 36 0 0 6 55 1279 0 0 0 1 4 this 3 1368 37 0 0 6 56 1281 0 0 0 2 4 this 3 1368 1 n 1 1279 38 0 0 6 57 1281 0 0 0 2 4 this 3 1368 1 n 1 1279 39 0 0 6 58 1348 0 0 0 1 4 this 3 1368 40 0 0 6 59 1348 0 0 0 3 4 this 3 1368 1 n 1 1279 5 count 1 1279 41 0 0 6 60 1281 0 0 0 1 4 this 3 1368 42 0 0 6 61 1281 0 0 0 1 4 this 3 1368 43 0 0 6 62 1279 0 0 0 2 4 this 3 1368 6 param0 0 1281 44 0 0 6 63 1281 0 0 0 3 4 this 3 1368 4 view 1 1351 5 flags 1 1281 45 0 0 4 64 1347 0 0 0 2 4 this 3 1368 4 view 1 1351 46 0 0 4 50 1347 0 0 0 1 4 this 3 1373 47 0 0 4 51 1347 0 0 0 2 4 this 3 1374 3 out 1 1357 48 0 0 7 73 1378 696 0 0 1 4 copy 1 1376 49 0 0 7 73 1378 696 0 0 1 4 copy 1 1379 50 0 0 4 74 1347 0 0 0 1 4 this 3 1378 51 0 0 6 75 1279 0 0 0 1 4 this 3 1376 52 0 0 6 76 1381 0 0 0 2 4 this 3 1376 1 n 1 1279 53 0 0 6 77 1381 0 0 0 2 4 this 3 1376 1 n 1 1279 54 0 0 6 78 1348 0 0 0 1 4 this 3 1376 55 0 0 6 79 1348 0 0 0 3 4 this 3 1376 1 n 1 1279 5 count 1 1279 56 0 0 6 80 1281 0 0 0 1 4 this 3 1376 57 0 0 6 81 1281 0 0 0 1 4 this 3 1376 58 0 0 6 82 1279 0 0 0 2 4 this 3 1376 6 param0 0 1381 59 0 0 6 83 1281 0 0 0 3 4 this 3 1376 4 view 1 1351 5 flags 1 1281 60 0 0 4 84 1347 0 0 0 2 4 this 3 1376 4 view 1 1351 61 0 0 4 70 1347 0 0 0 1 4 this 3 1382 62 0 0 4 71 1347 0 0 0 2 4 this 3 1383 3 out 1 1357 63 0 0 7 88 1385 716 0 0 1 4 copy 1 1345 64 0 0 7 88 1385 716 0 0 1 6 source 1 1348 65 0 0 7 88 1385 716 0 0 1 11 type_handle 1 1386 66 0 0 7 89 1385 716 0 0 2 1 n 1 1279 11 type_handle 1 1386 67 0 0 4 90 1347 0 0 0 1 4 this 3 1385 68 0 0 6 91 1279 0 0 0 1 4 this 3 1345 69 0 0 4 92 1347 0 0 0 2 4 this 3 1385 1 x 1 1331 70 0 0 4 93 1347 0 0 0 1 4 this 3 1385 71 0 0 6 94 1331 0 0 0 2 4 this 3 1345 1 n 1 1279 72 0 0 4 95 1347 0 0 0 3 4 this 3 1385 1 n 1 1279 5 value 1 1331 73 0 0 6 96 1331 0 0 0 2 4 this 3 1345 1 n 1 1279 74 0 0 4 97 1347 0 0 0 3 4 this 3 1385 1 n 1 1279 5 value 1 1331 75 0 0 6 98 1348 0 0 0 1 4 this 3 1345 76 0 0 4 99 1347 0 0 0 2 4 this 3 1385 4 data 1 1348 77 0 0 6 100 1348 0 0 0 3 4 this 3 1345 1 n 1 1279 5 count 1 1279 78 0 0 4 101 1347 0 0 0 4 4 this 3 1385 1 n 1 1279 5 count 1 1279 4 data 1 1388 79 0 0 6 102 1281 0 0 0 1 4 this 3 1345 80 0 0 6 103 1281 0 0 0 1 4 this 3 1345 81 0 0 6 104 1279 0 0 0 2 4 this 3 1345 6 param0 0 1331 82 0 0 6 105 1281 0 0 0 3 4 this 3 1385 4 view 1 1351 5 flags 1 1281 83 0 0 4 106 1347 0 0 0 2 4 this 3 1345 4 view 1 1351 84 0 0 7 110 1389 736 0 0 1 4 copy 1 1363 85 0 0 7 110 1389 736 0 0 1 6 source 1 1348 86 0 0 7 110 1389 736 0 0 1 11 type_handle 1 1386 87 0 0 7 111 1389 736 0 0 2 1 n 1 1279 11 type_handle 1 1386 88 0 0 4 112 1347 0 0 0 1 4 this 3 1389 89 0 0 6 113 1279 0 0 0 1 4 this 3 1363 90 0 0 4 114 1347 0 0 0 2 4 this 3 1389 1 x 1 1334 91 0 0 4 115 1347 0 0 0 1 4 this 3 1389 92 0 0 6 116 1334 0 0 0 2 4 this 3 1363 1 n 1 1279 93 0 0 4 117 1347 0 0 0 3 4 this 3 1389 1 n 1 1279 5 value 1 1334 94 0 0 6 118 1334 0 0 0 2 4 this 3 1363 1 n 1 1279 95 0 0 4 119 1347 0 0 0 3 4 this 3 1389 1 n 1 1279 5 value 1 1334 96 0 0 6 120 1348 0 0 0 1 4 this 3 1363 97 0 0 4 121 1347 0 0 0 2 4 this 3 1389 4 data 1 1348 98 0 0 6 122 1348 0 0 0 3 4 this 3 1363 1 n 1 1279 5 count 1 1279 99 0 0 4 123 1347 0 0 0 4 4 this 3 1389 1 n 1 1279 5 count 1 1279 4 data 1 1388 100 0 0 6 124 1281 0 0 0 1 4 this 3 1363 101 0 0 6 125 1281 0 0 0 1 4 this 3 1363 102 0 0 6 126 1279 0 0 0 2 4 this 3 1363 6 param0 0 1334 103 0 0 6 127 1281 0 0 0 3 4 this 3 1389 4 view 1 1351 5 flags 1 1281 104 0 0 4 128 1347 0 0 0 2 4 this 3 1363 4 view 1 1351 105 0 0 7 132 1390 756 0 0 1 4 copy 1 1371 106 0 0 7 132 1390 756 0 0 1 6 source 1 1348 107 0 0 7 132 1390 756 0 0 1 11 type_handle 1 1386 108 0 0 7 133 1390 756 0 0 2 1 n 1 1279 11 type_handle 1 1386 109 0 0 4 134 1347 0 0 0 1 4 this 3 1390 110 0 0 6 135 1279 0 0 0 1 4 this 3 1371 111 0 0 4 136 1347 0 0 0 2 4 this 3 1390 1 x 1 1281 112 0 0 4 137 1347 0 0 0 1 4 this 3 1390 113 0 0 6 138 1281 0 0 0 2 4 this 3 1371 1 n 1 1279 114 0 0 4 139 1347 0 0 0 3 4 this 3 1390 1 n 1 1279 5 value 1 1281 115 0 0 6 140 1281 0 0 0 2 4 this 3 1371 1 n 1 1279 116 0 0 4 141 1347 0 0 0 3 4 this 3 1390 1 n 1 1279 5 value 1 1281 117 0 0 6 142 1348 0 0 0 1 4 this 3 1371 118 0 0 4 143 1347 0 0 0 2 4 this 3 1390 4 data 1 1348 119 0 0 6 144 1348 0 0 0 3 4 this 3 1371 1 n 1 1279 5 count 1 1279 120 0 0 4 145 1347 0 0 0 4 4 this 3 1390 1 n 1 1279 5 count 1 1279 4 data 1 1388 121 0 0 6 146 1281 0 0 0 1 4 this 3 1371 122 0 0 6 147 1281 0 0 0 1 4 this 3 1371 123 0 0 6 148 1279 0 0 0 2 4 this 3 1371 6 param0 0 1281 124 0 0 6 149 1281 0 0 0 3 4 this 3 1390 4 view 1 1351 5 flags 1 1281 125 0 0 4 150 1347 0 0 0 2 4 this 3 1371 4 view 1 1351 126 0 0 7 154 1391 776 0 0 1 4 copy 1 1379 127 0 0 7 154 1391 776 0 0 1 6 source 1 1348 128 0 0 7 154 1391 776 0 0 1 11 type_handle 1 1386 129 0 0 7 155 1391 776 0 0 2 1 n 1 1279 11 type_handle 1 1386 130 0 0 4 156 1347 0 0 0 1 4 this 3 1391 131 0 0 6 157 1279 0 0 0 1 4 this 3 1379 132 0 0 4 158 1347 0 0 0 2 4 this 3 1391 1 x 1 1381 133 0 0 4 159 1347 0 0 0 1 4 this 3 1391 134 0 0 6 160 1381 0 0 0 2 4 this 3 1379 1 n 1 1279 135 0 0 4 161 1347 0 0 0 3 4 this 3 1391 1 n 1 1279 5 value 1 1381 136 0 0 6 162 1381 0 0 0 2 4 this 3 1379 1 n 1 1279 137 0 0 4 163 1347 0 0 0 3 4 this 3 1391 1 n 1 1279 5 value 1 1381 138 0 0 6 164 1348 0 0 0 1 4 this 3 1379 139 0 0 4 165 1347 0 0 0 2 4 this 3 1391 4 data 1 1348 140 0 0 6 166 1348 0 0 0 3 4 this 3 1379 1 n 1 1279 5 count 1 1279 141 0 0 4 167 1347 0 0 0 4 4 this 3 1391 1 n 1 1279 5 count 1 1279 4 data 1 1388 142 0 0 6 168 1281 0 0 0 1 4 this 3 1379 143 0 0 6 169 1281 0 0 0 1 4 this 3 1379 144 0 0 6 170 1279 0 0 0 2 4 this 3 1379 6 param0 0 1381 145 0 0 6 171 1281 0 0 0 3 4 this 3 1391 4 view 1 1351 5 flags 1 1281 146 0 0 4 172 1347 0 0 0 2 4 this 3 1379 4 view 1 1351 147 0 0 7 209 1394 798 0 0 1 6 param0 0 1392 148 0 0 6 176 1277 0 0 125 /** * Returns true if the MemoryUsage object is currently tracking memory (e.g. * track-memory-usage is configured #t). */ 0 149 0 0 6 177 1277 0 0 168 /** * 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 150 0 0 6 178 1278 0 0 136 /** * Returns the total number of bytes of allocated memory consumed by C++ * objects, not including the memory previously frozen. */ 0 151 0 0 6 179 1278 0 0 132 /** * Returns the total number of bytes of allocated memory consumed by C++ * objects, including the memory previously frozen. */ 0 152 0 0 6 180 1278 0 0 119 /** * Returns the total number of bytes allocated from the heap from code within * Panda, for individual objects. */ 0 153 0 0 6 181 1278 0 0 107 /** * Returns the total number of bytes allocated from the heap from code within * Panda, for arrays. */ 0 154 0 0 6 182 1278 0 0 190 /** * 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 155 0 0 6 183 1278 0 0 110 /** * Returns the total number of bytes allocated from the virtual memory pool * from code within Panda. */ 0 156 0 0 6 184 1278 0 0 496 /** * 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 157 0 0 6 185 1278 0 0 113 /** * Returns the total size of allocated memory consumed by the process, as * nearly as can be determined. */ 0 158 0 0 6 186 1281 0 0 59 /** * Returns the number of pointers currently active. */ 0 159 0 0 4 187 1347 0 0 100 /** * Fills the indicated MemoryUsagePointers with the set of all pointers * currently active. */ 1 6 result 1 1395 160 0 0 4 188 1347 0 0 122 /** * Fills the indicated MemoryUsagePointers with the set of all pointers of the * indicated type currently active. */ 2 6 result 1 1395 4 type 1 1386 161 0 0 4 189 1347 0 0 159 /** * 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 1395 4 from 1 1331 2 to 1 1331 162 0 0 4 190 1347 0 0 852 /** * 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 1395 163 0 0 4 191 1347 0 0 285 /** * '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 164 0 0 4 192 1347 0 0 70 /** * Shows the breakdown of types of all of the active pointers. */ 0 165 0 0 4 193 1347 0 0 118 /** * Shows the breakdown of types of all of the pointers allocated and freed * since the last call to freeze(). */ 0 166 0 0 4 194 1347 0 0 69 /** * Shows the breakdown of ages of all of the active pointers. */ 0 167 0 0 4 195 1347 0 0 117 /** * Shows the breakdown of ages of all of the pointers allocated and freed * since the last call to freeze(). */ 0 168 0 0 6 215 1281 0 0 47 /** * Returns the current reference count. */ 1 4 this 3 1396 169 0 0 4 216 1347 0 0 538 /** * 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 1396 170 0 0 6 217 1277 0 0 865 /** * 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 1396 171 0 0 6 220 1277 0 0 135 /** * 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 1396 172 0 0 6 221 1277 0 0 144 /** * 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 1396 173 0 0 7 222 1386 0 0 0 0 174 0 0 6 212 1399 0 0 0 1 4 this 3 1398 175 0 0 7 225 1402 801 0 0 1 6 param0 0 1400 176 0 0 6 224 1281 0 0 10 /** * */ 1 4 this 3 1400 177 0 0 4 234 1347 0 0 0 2 4 this 3 1403 5 level 1 1331 178 0 0 6 236 1281 0 0 47 /** * Returns the current reference count. */ 1 4 this 3 1404 179 0 0 4 237 1347 0 0 107 /** * Explicitly increments the node reference count and the normal reference * count simultaneously. */ 1 4 this 3 1404 180 0 0 6 238 1277 0 0 201 /** * 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 1404 181 0 0 6 239 1277 0 0 97 /** * Does some easy checks to make sure that the reference count isn't * completely bogus. */ 1 4 this 3 1404 182 0 0 4 240 1347 0 0 186 /** * Decrements the node reference count without affecting the normal reference * count. Intended to be called by derived classes only, presumably to * reimplement node_unref(). */ 1 4 this 3 1404 183 0 0 7 241 1386 0 0 0 0 184 0 0 7 244 1406 0 0 0 0 185 0 0 7 244 1406 0 0 0 1 4 from 1 1406 186 0 0 7 244 1406 0 0 0 1 4 copy 1 1407 187 0 0 7 244 1406 0 0 64 /** * Constructs a datagram from an existing block of data. */ 1 4 data 1 1409 188 0 0 6 245 1406 0 0 0 2 4 this 3 1406 4 from 1 1406 189 0 0 6 245 1406 0 0 0 2 4 this 3 1406 4 copy 1 1407 190 0 0 4 246 1347 0 0 90 /** * Resets the datagram to empty, in preparation for building up a new * datagram. */ 1 4 this 3 1406 191 0 0 4 247 1347 0 0 111 /** * Writes a representation of the entire datagram contents, as a sequence of * hex (and ASCII) values. */ 3 4 this 3 1407 3 out 1 1357 6 indent 1 1411 192 0 0 4 248 1347 0 0 48 /** * Adds a boolean value to the datagram. */ 2 4 this 3 1406 5 value 1 1277 193 0 0 4 249 1347 0 0 55 /** * Adds a signed 8-bit integer to the datagram. */ 2 4 this 3 1406 5 value 1 1412 194 0 0 4 250 1347 0 0 58 /** * Adds an unsigned 8-bit integer to the datagram. */ 2 4 this 3 1406 5 value 1 1414 195 0 0 4 251 1347 0 0 56 /** * Adds a signed 16-bit integer to the datagram. */ 2 4 this 3 1406 5 value 1 1415 196 0 0 4 252 1347 0 0 56 /** * Adds a signed 32-bit integer to the datagram. */ 2 4 this 3 1406 5 value 1 1417 197 0 0 4 253 1347 0 0 56 /** * Adds a signed 64-bit integer to the datagram. */ 2 4 this 3 1406 5 value 1 1418 198 0 0 4 254 1347 0 0 59 /** * Adds an unsigned 16-bit integer to the datagram. */ 2 4 this 3 1406 5 value 1 1419 199 0 0 4 255 1347 0 0 59 /** * Adds an unsigned 32-bit integer to the datagram. */ 2 4 this 3 1406 5 value 1 1421 200 0 0 4 256 1347 0 0 59 /** * Adds an unsigned 64-bit integer to the datagram. */ 2 4 this 3 1406 5 value 1 1422 201 0 0 4 257 1347 0 0 197 /** * 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 1406 5 value 1 1423 202 0 0 4 258 1347 0 0 63 /** * Adds a 64-bit floating-point number to the datagram. */ 2 4 this 3 1406 5 value 1 1424 203 0 0 4 259 1347 0 0 105 /** * Adds either a 32-bit or a 64-bit floating-point number, according to * set_stdfloat_double(). */ 2 4 this 3 1406 5 value 1 1333 204 0 0 4 260 1347 0 0 67 // These functions pack numbers big-endian, in case that's desired. 2 4 this 3 1406 5 value 1 1415 205 0 0 4 261 1347 0 0 67 /** * Adds a signed 32-bit big-endian integer to the datagram. */ 2 4 this 3 1406 5 value 1 1417 206 0 0 4 262 1347 0 0 67 /** * Adds a signed 64-bit big-endian integer to the datagram. */ 2 4 this 3 1406 5 value 1 1418 207 0 0 4 263 1347 0 0 70 /** * Adds an unsigned 16-bit big-endian integer to the datagram. */ 2 4 this 3 1406 5 value 1 1419 208 0 0 4 264 1347 0 0 70 /** * Adds an unsigned 32-bit big-endian integer to the datagram. */ 2 4 this 3 1406 5 value 1 1421 209 0 0 4 265 1347 0 0 70 /** * Adds an unsigned 64-bit big-endian integer to the datagram. */ 2 4 this 3 1406 5 value 1 1422 210 0 0 4 266 1347 0 0 94 /** * Adds a 32-bit single-precision big-endian floating-point number to the * datagram. */ 2 4 this 3 1406 5 value 1 1423 211 0 0 4 267 1347 0 0 74 /** * Adds a 64-bit big-endian floating-point number to the datagram. */ 2 4 this 3 1406 5 value 1 1424 212 0 0 4 268 1347 0 0 109 /** * Adds a variable-length string to the datagram. This actually adds a count * followed by n bytes. */ 2 4 this 3 1406 3 str 1 1388 213 0 0 4 269 1347 0 0 116 /** * Adds a variable-length string to the datagram, using a 32-bit length field * to allow very long strings. */ 2 4 this 3 1406 3 str 1 1388 214 0 0 4 270 1347 0 0 86 /** * Adds a variable-length string to the datagram, as a NULL-terminated string. */ 2 4 this 3 1406 3 str 1 1388 215 0 0 4 271 1347 0 0 238 /** * 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 1406 3 str 1 1388 4 size 1 1278 216 0 0 4 272 1347 0 0 58 /** * Adds a variable-length wstring to the datagram. */ 2 4 this 3 1406 3 str 1 1388 217 0 0 4 273 1347 0 0 114 /** * Adds a variable-length binary blob to the datagram. This actually adds a * count followed by n bytes. */ 2 4 this 3 1406 6 param0 0 1409 218 0 0 4 274 1347 0 0 119 /** * Adds a variable-length binary blob to the datagram, using a 32-bit length * field to allow very long blobs. */ 2 4 this 3 1406 6 param0 0 1409 219 0 0 4 275 1347 0 0 67 /** * Adds the indicated number of zero bytes to the datagram. */ 2 4 this 3 1406 4 size 1 1278 220 0 0 4 276 1347 0 0 65 /** * Appends some more raw data to the end of the datagram. */ 2 4 this 3 1406 4 data 1 1409 221 0 0 6 277 1348 0 0 51 /** * Returns the datagram's data as a string. */ 1 4 this 3 1407 222 0 0 6 278 1348 0 0 0 1 4 this 3 1407 223 0 0 6 279 1278 0 0 55 /** * Returns the number of bytes in the datagram. */ 1 4 this 3 1407 224 0 0 4 280 1347 0 0 199 /** * 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 1406 4 data 1 1425 225 0 0 4 281 1347 0 0 237 /** * 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 1406 4 data 1 1426 226 0 0 7 282 1426 0 0 70 /** * Returns a const pointer to the actual data in the Datagram. */ 1 4 this 3 1407 227 0 0 7 283 1425 0 0 75 /** * Returns a modifiable pointer to the actual data in the Datagram. */ 1 4 this 3 1406 228 0 0 4 284 1347 0 0 343 /** * 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 1406 15 stdfloat_double 1 1277 229 0 0 6 285 1277 0 0 72 /** * Returns the stdfloat_double flag. See set_stdfloat_double(). */ 1 4 this 3 1407 230 0 0 6 286 1277 0 0 0 2 4 this 3 1407 5 other 1 1407 231 0 0 6 287 1277 0 0 0 2 4 this 3 1407 5 other 1 1407 232 0 0 6 288 1277 0 0 0 2 4 this 3 1407 5 other 1 1407 233 0 0 4 289 1347 0 0 67 /** * Write a string representation of this instance to . */ 2 4 this 3 1407 3 out 1 1357 234 0 0 4 290 1347 0 0 67 /** * Write a string representation of this instance to . */ 3 4 this 3 1407 3 out 1 1357 6 indent 1 1411 235 0 0 7 291 1386 0 0 0 0 236 0 0 6 294 1277 0 0 0 2 4 this 3 1427 4 data 1 1406 237 0 0 6 295 1277 0 0 391 /** * 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 1427 4 info 1 1428 238 0 0 6 296 1277 0 0 0 1 4 this 3 1427 239 0 0 6 297 1277 0 0 0 1 4 this 3 1427 240 0 0 6 298 1429 0 0 159 /** * 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 1427 241 0 0 6 299 1432 0 0 138 /** * 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 1430 242 0 0 7 300 1292 0 0 156 /** * 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 1427 243 0 0 7 301 1434 1128 0 153 /** * 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 1427 244 0 0 6 302 1296 0 0 327 /** * 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 1427 245 0 0 7 304 1435 919 0 10 /** * */ 0 246 0 0 7 304 1435 919 0 10 /** * */ 2 8 datagram 1 1407 6 offset 1 1278 247 0 0 7 304 1435 919 0 0 1 6 param0 0 1436 248 0 0 6 305 1277 0 0 36 /** * Extracts a boolean value. */ 1 4 this 3 1435 249 0 0 6 306 1412 0 0 43 /** * Extracts a signed 8-bit integer. */ 1 4 this 3 1435 250 0 0 6 307 1414 0 0 46 /** * Extracts an unsigned 8-bit integer. */ 1 4 this 3 1435 251 0 0 6 308 1415 0 0 44 /** * Extracts a signed 16-bit integer. */ 1 4 this 3 1435 252 0 0 6 309 1417 0 0 44 /** * Extracts a signed 32-bit integer. */ 1 4 this 3 1435 253 0 0 6 310 1418 0 0 44 /** * Extracts a signed 64-bit integer. */ 1 4 this 3 1435 254 0 0 6 311 1419 0 0 47 /** * Extracts an unsigned 16-bit integer. */ 1 4 this 3 1435 255 0 0 6 312 1421 0 0 47 /** * Extracts an unsigned 32-bit integer. */ 1 4 this 3 1435 256 0 0 6 313 1422 0 0 47 /** * Extracts an unsigned 64-bit integer. */ 1 4 this 3 1435 257 0 0 6 314 1423 0 0 68 /** * Extracts a 32-bit single-precision floating-point number. */ 1 4 this 3 1435 258 0 0 6 315 1424 0 0 51 /** * Extracts a 64-bit floating-point number. */ 1 4 this 3 1435 259 0 0 6 316 1333 0 0 119 /** * Extracts either a 32-bit or a 64-bit floating-point number, according to * Datagram::set_stdfloat_double(). */ 1 4 this 3 1435 260 0 0 6 317 1415 0 0 55 /** * Extracts a signed 16-bit big-endian integer. */ 1 4 this 3 1435 261 0 0 6 318 1417 0 0 55 /** * Extracts a signed 32-bit big-endian integer. */ 1 4 this 3 1435 262 0 0 6 319 1418 0 0 55 /** * Extracts a signed 64-bit big-endian integer. */ 1 4 this 3 1435 263 0 0 6 320 1419 0 0 58 /** * Extracts an unsigned 16-bit big-endian integer. */ 1 4 this 3 1435 264 0 0 6 321 1421 0 0 58 /** * Extracts an unsigned 32-bit big-endian integer. */ 1 4 this 3 1435 265 0 0 6 322 1422 0 0 58 /** * Extracts an unsigned 64-bit big-endian integer. */ 1 4 this 3 1435 266 0 0 6 323 1423 0 0 79 /** * Extracts a 32-bit big-endian single-precision floating-point number. */ 1 4 this 3 1435 267 0 0 6 324 1424 0 0 62 /** * Extracts a 64-bit big-endian floating-point number. */ 1 4 this 3 1435 268 0 0 6 325 1388 0 0 45 /** * Extracts a variable-length string. */ 1 4 this 3 1435 269 0 0 6 326 1388 0 0 72 /** * Extracts a variable-length string with a 32-bit length field. */ 1 4 this 3 1435 270 0 0 6 327 1388 0 0 74 /** * Extracts a variable-length string, as a NULL-terminated string. */ 1 4 this 3 1435 271 0 0 6 328 1388 0 0 128 /** * 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 1435 4 size 1 1278 272 0 0 6 329 1388 0 0 75 /** * Extracts a variable-length wstring (with a 32-bit length field). */ 1 4 this 3 1435 273 0 0 6 330 1409 0 0 50 /** * Extracts a variable-length binary blob. */ 1 4 this 3 1435 274 0 0 6 331 1409 0 0 75 /** * Extracts a variable-length binary blob with a 32-bit size field. */ 1 4 this 3 1435 275 0 0 4 332 1347 0 0 68 /** * Skips over the indicated number of bytes in the datagram. */ 2 4 this 3 1435 4 size 1 1278 276 0 0 6 333 1409 0 0 98 /** * Extracts the indicated number of bytes in the datagram and returns them as * a string. */ 2 4 this 3 1435 4 size 1 1278 277 0 0 6 334 1409 0 0 115 /** * Returns the remaining bytes in the datagram as a string, but does not * extract them from the iterator. */ 1 4 this 3 1436 278 0 0 6 335 1278 0 0 49 /** * Return the bytes left in the datagram. */ 1 4 this 3 1436 279 0 0 6 336 1407 0 0 48 /** * Return the datagram of this iterator. */ 1 4 this 3 1436 280 0 0 6 337 1278 0 0 100 /** * Returns the current position within the datagram of the next piece of data * to extract. */ 1 4 this 3 1436 281 0 0 4 338 1347 0 0 67 /** * Write a string representation of this instance to . */ 2 4 this 3 1436 3 out 1 1357 282 0 0 4 339 1347 0 0 67 /** * Write a string representation of this instance to . */ 3 4 this 3 1436 3 out 1 1357 6 indent 1 1411 283 0 0 7 340 1386 0 0 0 0 284 0 0 6 344 1277 0 0 0 2 4 this 3 1438 4 data 1 1407 285 0 0 6 345 1277 0 0 349 /** * 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 1438 6 result 1 1428 8 filename 1 1429 286 0 0 6 345 1277 0 0 362 /** * 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 1438 6 result 1 1428 6 source 1 1439 287 0 0 6 346 1277 0 0 0 1 4 this 3 1438 288 0 0 4 347 1347 0 0 0 1 4 this 3 1438 289 0 0 6 348 1429 0 0 159 /** * 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 1438 290 0 0 7 349 1292 0 0 152 /** * 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 1438 291 0 0 6 350 1296 0 0 322 /** * 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 1438 292 0 0 7 365 1441 937 0 0 1 6 param0 0 1292 293 0 0 7 365 1441 937 0 10 /** * */ 1 8 filename 1 1429 294 0 0 6 366 1429 0 0 49 /** * Returns the filename of the reference. */ 1 4 this 3 1292 295 0 0 7 367 1386 0 0 0 0 296 0 0 7 363 1386 0 0 0 0 297 0 0 6 359 1443 0 0 0 1 4 this 3 1442 298 0 0 7 361 1398 801 0 0 1 4 this 3 1442 299 0 0 7 384 1444 957 0 10 /** * */ 0 300 0 0 7 384 1444 957 0 0 1 6 param0 0 1445 301 0 0 4 385 1347 0 0 130 /** * 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 1444 3 pos 1 1278 302 0 0 6 386 1278 0 0 106 /** * Returns the current data pointer position as a byte offset from the * beginning of the stream. */ 1 4 this 3 1445 303 0 0 6 387 1348 0 0 319 /** * 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 1444 6 length 1 1278 304 0 0 6 388 1348 0 0 303 /** * 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 1444 305 0 0 6 389 1348 0 0 0 1 4 this 3 1444 306 0 0 6 390 1348 0 0 101 /** * Returns the entire buffer contents as a string, regardless of the current * data pointer. */ 1 4 this 3 1445 307 0 0 6 391 1278 0 0 58 /** * Returns the size of the entire buffer contents. */ 1 4 this 3 1445 308 0 0 4 392 1347 0 0 47 /** * Empties the current buffer contents. */ 1 4 this 3 1444 309 0 0 7 395 1447 988 0 10 /** * */ 0 310 0 0 7 395 1447 988 0 10 /** * */ 1 4 copy 1 1448 311 0 0 6 396 1447 0 0 0 2 4 this 3 1447 4 copy 1 1448 312 0 0 6 397 1277 0 0 0 2 4 this 3 1448 5 other 1 1448 313 0 0 6 398 1277 0 0 0 2 4 this 3 1448 5 other 1 1448 314 0 0 6 399 1277 0 0 0 2 4 this 3 1448 5 other 1 1448 315 0 0 6 400 1281 0 0 10 /** * */ 2 4 this 3 1448 5 other 1 1448 316 0 0 4 401 1347 0 0 86 /** * Generates a new HashVal representing the xor of this one and the other one. */ 2 4 this 3 1447 5 other 1 1448 317 0 0 4 402 1347 0 0 65 /** * Outputs the HashVal as four unsigned decimal integers. */ 2 4 this 3 1448 3 out 1 1357 318 0 0 4 403 1347 0 0 64 /** * Inputs the HashVal as four unsigned decimal integers. */ 2 4 this 3 1447 2 in 1 1449 319 0 0 4 404 1347 0 0 64 /** * Outputs the HashVal as a 32-digit hexadecimal number. */ 2 4 this 3 1448 3 out 1 1357 320 0 0 4 405 1347 0 0 63 /** * Inputs the HashVal as a 32-digit hexadecimal number. */ 2 4 this 3 1447 2 in 1 1449 321 0 0 4 406 1347 0 0 128 /** * 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 1448 3 out 1 1357 322 0 0 4 407 1347 0 0 125 /** * 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 1447 2 in 1 1449 323 0 0 4 408 1347 0 0 10 /** * */ 2 4 this 3 1448 3 out 1 1357 324 0 0 6 409 1388 0 0 69 /** * Returns the HashVal as a string with four decimal numbers. */ 1 4 this 3 1448 325 0 0 6 410 1277 0 0 112 /** * Sets the HashVal from a string with four decimal numbers. Returns true if * valid, false otherwise. */ 2 4 this 3 1447 4 text 1 1388 326 0 0 6 411 1388 0 0 63 /** * Returns the HashVal as a 32-byte hexadecimal string. */ 1 4 this 3 1448 327 0 0 6 412 1277 0 0 111 /** * Sets the HashVal from a 32-byte hexademical string. Returns true if * successful, false otherwise. */ 2 4 this 3 1447 4 text 1 1388 328 0 0 6 413 1409 0 0 58 /** * Returns the HashVal as a 16-byte binary string. */ 1 4 this 3 1448 329 0 0 6 414 1277 0 0 106 /** * Sets the HashVal from a 16-byte binary string. Returns true if successful, * false otherwise. */ 2 4 this 3 1447 4 text 1 1409 330 0 0 4 415 1347 0 0 10 /** * */ 2 4 this 3 1448 11 destination 1 1406 331 0 0 4 416 1347 0 0 10 /** * */ 2 4 this 3 1447 6 source 1 1435 332 0 0 4 417 1347 0 0 10 /** * */ 2 4 this 3 1448 11 destination 1 1450 333 0 0 4 418 1347 0 0 10 /** * */ 2 4 this 3 1447 6 source 1 1452 334 0 0 6 419 1277 0 0 232 /** * 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 1447 8 filename 1 1429 335 0 0 6 420 1277 0 0 232 /** * 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 1447 6 stream 1 1449 336 0 0 4 421 1347 0 0 178 /** * 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 1447 7 ramfile 1 1445 337 0 0 4 422 1347 0 0 178 /** * 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 1447 4 data 1 1388 338 0 0 4 423 1347 0 0 178 /** * 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 1447 4 data 1 1409 339 0 0 4 424 1347 0 0 178 /** * 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 1447 6 buffer 1 1388 6 length 1 1281 340 0 0 7 427 1395 990 0 10 /** * */ 0 341 0 0 7 427 1395 990 0 0 1 6 param0 0 1454 342 0 0 6 429 1278 0 0 53 /** * Returns the number of pointers in the set. */ 1 4 this 3 1454 343 0 0 7 430 1398 801 0 46 /** * Returns the nth pointer of the set. */ 2 4 this 3 1454 1 n 1 1278 344 0 0 6 432 1443 0 0 175 /** * 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 * nullptr. */ 2 4 this 3 1454 1 n 1 1278 345 0 0 7 434 1386 0 0 70 /** * Returns the actual type of the nth pointer, if it is known. */ 2 4 this 3 1454 1 n 1 1278 346 0 0 6 435 1388 0 0 68 /** * Returns the type name of the nth pointer, if it is known. */ 2 4 this 3 1454 1 n 1 1278 347 0 0 6 436 1331 0 0 197 /** * 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 1454 1 n 1 1278 348 0 0 6 437 1348 0 0 0 2 4 this 3 1454 1 n 1 1278 349 0 0 4 438 1347 0 0 39 /** * Empties the set of pointers. */ 1 4 this 3 1395 350 0 0 4 439 1347 0 0 10 /** * */ 2 4 this 3 1454 3 out 1 1357 351 0 0 7 442 1456 1003 0 10 /** * */ 0 352 0 0 7 442 1456 1003 0 10 /** * */ 3 6 source 1 1457 5 start 1 1296 3 end 1 1296 353 0 0 6 443 1456 0 0 391 /** * 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 1456 6 source 1 1457 5 start 1 1296 3 end 1 1296 354 0 0 6 444 1456 0 0 92 /** * Resets the SubStream to empty, but does not actually close the source * istream. */ 1 4 this 3 1456 355 0 0 7 448 1459 1007 0 10 /** * */ 0 356 0 0 7 448 1459 1007 0 10 /** * */ 4 4 dest 1 1460 5 start 1 1296 3 end 1 1296 6 append 1 1277 357 0 0 6 449 1459 0 0 383 /** * 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 1459 4 dest 1 1460 5 start 1 1296 3 end 1 1296 6 append 1 1277 358 0 0 6 450 1459 0 0 90 /** * Resets the SubStream to empty, but does not actually close the dest * ostream. */ 1 4 this 3 1459 359 0 0 7 454 1462 1011 0 10 /** * */ 0 360 0 0 7 454 1462 1011 0 10 /** * */ 4 6 nested 1 1463 5 start 1 1296 3 end 1 1296 6 append 1 1277 361 0 0 6 455 1462 0 0 278 /** * 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 1462 6 nested 1 1463 5 start 1 1296 3 end 1 1296 6 append 1 1277 362 0 0 6 456 1462 0 0 92 /** * Resets the SubStream to empty, but does not actually close the nested * ostream. */ 1 4 this 3 1462 363 0 0 7 459 1465 801 0 10 /** * */ 0 364 0 0 6 460 1277 0 0 352 /** * 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 1465 14 multifile_name 1 1429 6 offset 1 1296 365 0 0 6 460 1277 0 0 333 /** * 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 1465 16 multifile_stream 1 1457 12 owns_pointer 1 1277 6 offset 1 1296 366 0 0 6 461 1277 0 0 420 /** * 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 1465 14 multifile_name 1 1429 367 0 0 6 461 1277 0 0 333 /** * 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 1465 16 multifile_stream 1 1357 12 owns_pointer 1 1277 368 0 0 6 462 1277 0 0 360 /** * 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 1465 14 multifile_name 1 1429 369 0 0 6 462 1277 0 0 365 /** * 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 1465 16 multifile_stream 1 1466 12 owns_pointer 1 1277 370 0 0 4 463 1347 0 0 169 /** * 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 1465 371 0 0 6 464 1429 0 0 69 /** * Returns the filename of the Multifile, if it is available. */ 1 4 this 3 1467 372 0 0 4 465 1347 0 0 209 /** * 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 1465 14 multifile_name 1 1429 373 0 0 6 466 1277 0 0 154 /** * 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 1467 374 0 0 6 467 1277 0 0 162 /** * 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 1467 375 0 0 6 468 1277 0 0 118 /** * Returns true if the Multifile index is suboptimal and should be repacked. * Call repack() to achieve this. */ 1 4 this 3 1467 376 0 0 6 469 1432 0 0 299 /** * 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 1467 377 0 0 4 470 1347 0 0 529 /** * 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 1465 16 record_timestamp 1 1277 378 0 0 6 471 1277 0 0 137 /** * Returns the flag indicating whether timestamps should be recorded within * the Multifile or not. See set_record_timestamp(). */ 1 4 this 3 1467 379 0 0 4 472 1347 0 0 782 /** * 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 1465 12 scale_factor 1 1278 380 0 0 6 473 1278 0 0 92 /** * Returns the internal scale factor for this Multifile. See * set_scale_factor(). */ 1 4 this 3 1467 381 0 0 4 474 1347 0 0 461 /** * 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 1465 4 flag 1 1277 382 0 0 6 475 1277 0 0 163 /** * 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 1467 383 0 0 4 476 1347 0 0 369 /** * 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 1465 19 encryption_password 1 1388 384 0 0 6 477 1388 0 0 141 /** * Returns the password that will be used to encrypt subfiles subsequently * added to the multifile. See set_encryption_password(). */ 1 4 this 3 1467 385 0 0 4 478 1347 0 0 659 /** * 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 1465 20 encryption_algorithm 1 1388 386 0 0 6 479 1388 0 0 96 /** * Returns the encryption algorithm that was specified by * set_encryption_algorithm(). */ 1 4 this 3 1467 387 0 0 4 480 1347 0 0 611 /** * 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 1465 21 encryption_key_length 1 1281 388 0 0 6 481 1281 0 0 108 /** * Returns the encryption key length, in bits, that was specified by * set_encryption_key_length(). */ 1 4 this 3 1467 389 0 0 4 482 1347 0 0 740 /** * 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 1465 26 encryption_iteration_count 1 1281 390 0 0 6 483 1281 0 0 84 /** * Returns the value that was specified by set_encryption_iteration_count(). */ 1 4 this 3 1467 391 0 0 6 484 1388 0 0 618 /** * 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). * * Either 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 1465 12 subfile_name 1 1388 8 filename 1 1429 17 compression_level 1 1281 392 0 0 6 484 1388 0 0 777 /** * 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 1465 12 subfile_name 1 1388 12 subfile_data 1 1449 17 compression_level 1 1281 393 0 0 6 485 1388 0 0 451 /** * 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. * * Either 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 1465 12 subfile_name 1 1388 8 filename 1 1429 17 compression_level 1 1281 394 0 0 6 486 1277 0 0 1292 /** * 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 1465 11 certificate 1 1429 5 chain 1 1429 4 pkey 1 1429 8 password 1 1388 395 0 0 6 486 1277 0 0 724 /** * 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 1465 9 composite 1 1429 8 password 1 1388 396 0 0 6 487 1281 0 0 555 /** * 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 1467 397 0 0 6 488 1388 0 0 352 /** * 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 1467 1 n 1 1281 398 0 0 6 489 1388 0 0 299 /** * 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 1467 1 n 1 1281 399 0 0 6 490 1388 0 0 379 /** * 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 1467 1 n 1 1281 400 0 0 4 491 1347 0 0 158 /** * 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 1467 1 n 1 1281 3 out 1 1357 401 0 0 4 492 1347 0 0 140 /** * 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 1467 1 n 1 1281 3 out 1 1357 402 0 0 6 493 1281 0 0 289 /** * 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 1467 1 n 1 1281 403 0 0 6 494 1277 0 0 691 /** * 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 1465 404 0 0 6 495 1277 0 0 587 /** * 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 1465 405 0 0 6 496 1281 0 0 169 /** * 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 1467 406 0 0 6 497 1281 0 0 127 /** * 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 1467 12 subfile_name 1 1388 407 0 0 6 498 1277 0 0 203 /** * 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 1467 12 subfile_name 1 1388 408 0 0 6 499 1277 0 0 420 /** * 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 1467 8 contents 1 1469 12 subfile_name 1 1388 409 0 0 4 500 1347 0 0 435 /** * 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 1465 5 index 1 1281 410 0 0 6 500 1277 0 0 475 /** * 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 1465 12 subfile_name 1 1388 411 0 0 6 501 1388 0 0 47 /** * Returns the name of the nth subfile. */ 2 4 this 3 1467 5 index 1 1281 412 0 0 6 503 1278 0 0 170 /** * 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 1467 5 index 1 1281 413 0 0 6 504 1432 0 0 270 /** * 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 1467 5 index 1 1281 414 0 0 6 505 1277 0 0 120 /** * Returns true if the indicated subfile has been compressed when stored * within the archive, false otherwise. */ 2 4 this 3 1467 5 index 1 1281 415 0 0 6 506 1277 0 0 119 /** * Returns true if the indicated subfile has been encrypted when stored within * the archive, false otherwise. */ 2 4 this 3 1467 5 index 1 1281 416 0 0 6 507 1277 0 0 343 /** * 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 1467 5 index 1 1281 417 0 0 6 508 1296 0 0 371 /** * 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 1467 418 0 0 6 509 1296 0 0 338 /** * 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 1467 5 index 1 1281 419 0 0 6 510 1278 0 0 322 /** * 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 1467 5 index 1 1281 420 0 0 6 511 1409 0 0 96 /** * Returns a vector_uchar that contains the entire contents of the indicated * subfile. */ 2 4 this 3 1465 5 index 1 1281 421 0 0 6 512 1449 0 0 745 /** * 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 1465 5 index 1 1281 422 0 0 4 513 1347 0 0 246 /** * 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 1449 423 0 0 6 514 1277 0 0 68 /** * Extracts the nth subfile into a file with the given name. */ 3 4 this 3 1465 5 index 1 1281 8 filename 1 1429 424 0 0 6 515 1277 0 0 61 /** * Extracts the nth subfile to the indicated ostream. */ 3 4 this 3 1465 5 index 1 1281 3 out 1 1357 425 0 0 6 516 1277 0 0 509 /** * 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 1465 5 index 1 1281 8 filename 1 1429 426 0 0 4 517 1347 0 0 10 /** * */ 2 4 this 3 1467 3 out 1 1357 427 0 0 4 518 1347 0 0 61 /** * Shows a list of all subfiles within the Multifile. */ 2 4 this 3 1467 3 out 1 1357 428 0 0 6 519 1388 0 0 108 /** * Returns a string with the first n bytes written to a Multifile, to identify * it as a Multifile. */ 0 429 0 0 4 523 1347 0 0 644 /** * 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 1465 13 header_prefix 1 1388 430 0 0 6 524 1388 0 0 113 /** * Returns the string that preceded the Multifile header on the file, if any. * See set_header_prefix(). */ 1 4 this 3 1467 431 0 0 7 526 1474 1081 0 0 1 6 param0 0 1472 432 0 0 7 526 1474 1081 0 10 /** * */ 1 12 initial_name 1 1388 433 0 0 4 527 1347 0 0 10 /** * */ 2 4 this 3 1474 4 name 1 1388 434 0 0 4 528 1347 0 0 46 /** * Resets the Namable's name to empty. */ 1 4 this 3 1474 435 0 0 6 529 1277 0 0 94 /** * Returns true if the Namable has a nonempty name set, false if the name is * empty. */ 1 4 this 3 1472 436 0 0 6 530 1388 0 0 10 /** * */ 1 4 this 3 1472 437 0 0 4 533 1347 0 0 148 /** * Outputs the Namable. This function simply writes the name to the output * stream; most Namable derivatives will probably redefine this. */ 2 4 this 3 1472 3 out 1 1357 438 0 0 7 534 1386 0 0 0 0 439 0 0 4 537 1347 0 0 200 /** * Removes all the certificates from the global store, including the compiled- * in certificates loaded from ca_bundle_data.c. You can add new certificates * by calling load_certificates(). */ 1 4 this 3 1475 440 0 0 6 538 1281 0 0 436 /** * Reads the PEM-formatted certificate(s) (delimited by -----BEGIN * CERTIFICATE----- and -----END CERTIFICATE-----) from the indicated file and * adds them to the global store object, retrieved via get_x509_store(). * * Returns the number of certificates read on success, or 0 on failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ 2 4 this 3 1475 8 filename 1 1429 441 0 0 6 539 1281 0 0 376 /** * Reads a chain of trusted certificates from the indicated data buffer and * adds them to the X509_STORE object. The data buffer should be PEM- * formatted. Returns the number of certificates read on success, or 0 on * failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ 3 4 this 3 1475 4 data 1 1388 9 data_size 1 1278 442 0 0 6 539 1281 0 0 376 /** * Reads a chain of trusted certificates from the indicated data buffer and * adds them to the X509_STORE object. The data buffer should be PEM- * formatted. Returns the number of certificates read on success, or 0 on * failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ 2 4 this 3 1475 4 data 1 1388 443 0 0 6 540 1281 0 0 376 /** * Reads a chain of trusted certificates from the indicated data buffer and * adds them to the X509_STORE object. The data buffer should be DER- * formatted. Returns the number of certificates read on success, or 0 on * failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ 3 4 this 3 1475 4 data 1 1388 9 data_size 1 1278 444 0 0 6 540 1281 0 0 376 /** * Reads a chain of trusted certificates from the indicated data buffer and * adds them to the X509_STORE object. The data buffer should be DER- * formatted. Returns the number of certificates read on success, or 0 on * failure. * * You should call this only with trusted, locally-stored certificates; not * with certificates received from an untrusted source. */ 2 4 this 3 1475 4 data 1 1388 445 0 0 6 541 1476 0 0 378 /** * Returns the global X509_STORE object. * * It has to be a global object, because OpenSSL seems to store some global * pointers associated with this object whether you want it to or not, and * keeping independent copies of a local X509_STORE object doesn't seem to * work that well. So, we have one store that keeps all certificates the * application might need. */ 1 4 this 3 1475 446 0 0 4 542 1347 0 0 277 /** * A convenience function that is itself a wrapper around the OpenSSL * convenience function to output the recent OpenSSL errors. This function * sends the error string to express_cat.warning(). If REPORT_OPENSSL_ERRORS * is not defined, the function does nothing. */ 1 4 this 3 1475 447 0 0 4 543 1347 0 0 84 /** * As notify_ssl_errors(), but sends the output to debug instead of warning. */ 1 4 this 3 1475 448 0 0 6 544 1475 0 0 10 /** * */ 0 449 0 0 7 546 1428 1098 0 10 /** * */ 0 450 0 0 7 546 1428 1098 0 10 /** * */ 3 4 file 1 1292 5 start 1 1296 4 size 1 1479 451 0 0 7 546 1428 1098 0 10 /** * */ 3 8 filename 1 1429 5 start 1 1296 4 size 1 1479 452 0 0 7 546 1428 1098 0 10 /** * */ 1 4 copy 1 1439 453 0 0 6 547 1428 0 0 0 2 4 this 3 1428 4 copy 1 1439 454 0 0 6 548 1277 0 0 98 /** * Returns true if this SubfileInfo doesn't define any file, false if it has * real data. */ 1 4 this 3 1439 455 0 0 7 549 1292 0 0 63 /** * Returns the FileReference that represents this file. */ 1 4 this 3 1439 456 0 0 6 550 1429 0 0 38 /** * A shortcut to the filename. */ 1 4 this 3 1439 457 0 0 6 551 1296 0 0 77 /** * Returns the offset within the file at which this file data begins. */ 1 4 this 3 1439 458 0 0 6 552 1479 0 0 115 /** * Returns the number of consecutive bytes, beginning at get_start(), that * correspond to this file data. */ 1 4 this 3 1439 459 0 0 4 553 1347 0 0 10 /** * */ 2 4 this 3 1439 3 out 1 1357 460 0 0 6 556 1482 0 0 0 1 4 this 3 1480 461 0 0 7 557 1483 0 0 0 1 4 this 3 1480 462 0 0 6 558 1429 0 0 166 /** * 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 1480 463 0 0 6 559 1277 0 0 61 /** * Returns true if this file exists, false otherwise. */ 1 4 this 3 1480 464 0 0 6 560 1277 0 0 117 /** * Returns true if this file represents a directory (and scan_directory() may * be called), false otherwise. */ 1 4 this 3 1480 465 0 0 6 561 1277 0 0 115 /** * Returns true if this file represents a regular file (and read_file() may be * called), false otherwise. */ 1 4 this 3 1480 466 0 0 6 562 1277 0 0 153 /** * 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 1480 467 0 0 6 563 1277 0 0 199 /** * 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 1434 468 0 0 6 564 1277 0 0 589 /** * 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 1434 8 new_file 1 1434 469 0 0 6 565 1277 0 0 123 /** * Attempts to copy the contents of this file to the indicated file. Returns * true on success, false on failure. */ 2 4 this 3 1434 8 new_file 1 1434 470 0 0 7 566 1484 801 0 247 /** * 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 1480 471 0 0 4 567 1347 0 0 10 /** * */ 2 4 this 3 1480 3 out 1 1357 472 0 0 4 568 1347 0 0 66 /** * If the file represents a directory, lists its contents. */ 2 4 this 3 1480 3 out 1 1357 473 0 0 4 569 1347 0 0 113 /** * If the file represents a directory, recursively lists its contents and * those of all subdirectories. */ 2 4 this 3 1480 3 out 1 1357 474 0 0 6 570 1348 0 0 63 /** * Returns the entire contents of the file as a string. */ 2 4 this 3 1480 11 auto_unwrap 1 1277 475 0 0 6 571 1449 0 0 179 /** * 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 1480 11 auto_unwrap 1 1277 476 0 0 4 572 1347 0 0 243 /** * 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 1480 6 stream 1 1449 477 0 0 6 573 1277 0 0 324 /** * 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 1480 478 0 0 6 574 1348 0 0 0 3 4 this 3 1434 4 data 1 1348 9 auto_wrap 1 1277 479 0 0 6 575 1357 0 0 179 /** * 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 1434 9 auto_wrap 1 1277 8 truncate 1 1277 480 0 0 6 576 1357 0 0 180 /** * 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 1434 481 0 0 4 577 1347 0 0 244 /** * 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 1434 6 stream 1 1357 482 0 0 6 578 1466 0 0 180 /** * 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 1434 8 truncate 1 1277 483 0 0 6 579 1466 0 0 194 /** * 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 1434 484 0 0 4 580 1347 0 0 250 /** * 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 1434 6 stream 1 1466 485 0 0 6 581 1479 0 0 105 /** * Returns the current size on disk (or wherever it is) of the file before it * has been opened. */ 1 4 this 3 1480 486 0 0 6 581 1479 0 0 222 /** * 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 1480 6 stream 1 1449 487 0 0 6 582 1432 0 0 434 /** * 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 1480 488 0 0 6 583 1277 0 0 330 /** * 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 1434 4 info 1 1428 489 0 0 7 584 1386 0 0 0 0 490 0 0 7 587 1386 0 0 0 0 491 0 0 6 590 1482 0 0 68 /** * Returns the file system this mount object is attached to. */ 1 4 this 3 1485 492 0 0 6 591 1429 0 0 161 /** * 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 1485 493 0 0 6 592 1281 0 0 100 /** * Returns the set of flags passed by the user to the * VirtualFileSystem::mount() command. */ 1 4 this 3 1485 494 0 0 4 593 1347 0 0 10 /** * */ 2 4 this 3 1485 3 out 1 1357 495 0 0 4 594 1347 0 0 10 /** * */ 2 4 this 3 1485 3 out 1 1357 496 0 0 7 595 1386 0 0 0 0 497 0 0 7 597 1487 933 0 10 /** * */ 1 9 multifile 1 1465 498 0 0 7 598 1465 801 0 76 /** * Returns the Multifile pointer that this mount object is based on. */ 1 4 this 3 1488 499 0 0 7 599 1386 0 0 0 0 500 0 0 7 601 1490 1142 0 10 /** * */ 0 501 0 0 7 602 1386 0 0 0 0 502 0 0 7 605 1491 1146 0 10 /** * */ 1 17 physical_filename 1 1429 503 0 0 6 606 1429 0 0 112 /** * Returns the name of the source file on the OS filesystem of the directory * or file that is mounted. */ 1 4 this 3 1492 504 0 0 7 607 1386 0 0 0 0 505 0 0 7 610 1496 933 0 69 /** * Returns the VirtualFileMount this file is associated with. */ 1 4 this 3 1494 506 0 0 6 611 1277 0 0 174 /** * 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 1494 507 0 0 7 612 1386 0 0 0 0 508 0 0 7 615 1497 937 0 10 /** * */ 1 8 filename 1 1429 509 0 0 7 615 1497 937 0 0 1 6 param0 0 1498 510 0 0 7 616 1386 0 0 0 0 511 0 0 7 618 1500 1156 0 10 /** * */ 0 512 0 0 7 618 1500 1156 0 10 /** * */ 2 6 source 1 1449 11 owns_source 1 1277 513 0 0 6 619 1500 0 0 10 /** * */ 3 4 this 3 1500 6 source 1 1449 11 owns_source 1 1277 514 0 0 6 620 1500 0 0 118 /** * Resets the ZStream to empty, but does not actually close the source istream * unless owns_source was true. */ 1 4 this 3 1500 515 0 0 7 623 1501 1160 0 10 /** * */ 0 516 0 0 7 623 1501 1160 0 10 /** * */ 3 4 dest 1 1357 9 owns_dest 1 1277 17 compression_level 1 1281 517 0 0 6 624 1501 0 0 10 /** * */ 4 4 this 3 1501 4 dest 1 1357 9 owns_dest 1 1277 17 compression_level 1 1281 518 0 0 6 625 1501 0 0 114 /** * Resets the ZStream to empty, but does not actually close the dest ostream * unless owns_dest was true. */ 1 4 this 3 1501 519 0 0 7 635 1484 801 0 0 1 6 param0 0 1502 520 0 0 6 628 1278 0 0 51 /** * Returns the number of files in the list. */ 1 4 this 3 1502 521 0 0 7 629 1434 1128 0 44 /** * Returns the nth file in the list. */ 2 4 this 3 1502 1 n 1 1278 522 0 0 7 631 1434 1128 0 44 /** * Returns the nth file in the list. */ 2 4 this 3 1502 1 n 1 1278 523 0 0 6 632 1278 0 0 51 /** * Returns the number of files in the list. */ 1 4 this 3 1502 524 0 0 7 633 1484 801 0 0 2 4 this 3 1484 5 other 1 1502 525 0 0 7 634 1484 801 0 0 2 4 this 3 1502 5 other 1 1502 526 0 0 7 637 1482 1169 0 10 /** * */ 0 527 0 0 6 640 1277 0 0 1009 /** * 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 1482 17 physical_filename 1 1429 11 mount_point 1 1429 5 flags 1 1281 8 password 1 1388 528 0 0 6 640 1277 0 0 67 /** * Mounts the indicated Multifile at the given mount point. */ 4 4 this 3 1482 9 multifile 1 1465 11 mount_point 1 1429 5 flags 1 1281 529 0 0 6 640 1277 0 0 208 /** * 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 1482 5 mount 1 1496 11 mount_point 1 1429 5 flags 1 1281 530 0 0 6 641 1277 0 0 587 /** * 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 1482 16 virtual_filename 1 1429 11 mount_point 1 1429 5 flags 1 1281 8 password 1 1388 531 0 0 6 642 1281 0 0 156 /** * 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 1482 17 physical_filename 1 1429 532 0 0 6 642 1281 0 0 132 /** * Unmounts all appearances of the indicated Multifile from the file system. * Returns the number of appearances unmounted. */ 2 4 this 3 1482 9 multifile 1 1465 533 0 0 6 642 1281 0 0 127 /** * Unmounts the indicated VirtualFileMount object from the file system. * Returns the number of appearances unmounted. */ 2 4 this 3 1482 5 mount 1 1496 534 0 0 6 643 1281 0 0 136 /** * Unmounts all systems attached to the given mount point from the file * system. Returns the number of appearances unmounted. */ 2 4 this 3 1482 11 mount_point 1 1429 535 0 0 6 644 1281 0 0 96 /** * Unmounts all files from the file system. Returns the number of systems * unmounted. */ 1 4 this 3 1482 536 0 0 6 645 1281 0 0 65 /** * Returns the number of individual mounts in the system. */ 1 4 this 3 1504 537 0 0 7 646 1496 933 0 47 /** * Returns the nth mount in the system. */ 2 4 this 3 1504 1 n 1 1281 538 0 0 6 660 1277 0 0 171 /** * 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 1482 13 new_directory 1 1429 539 0 0 7 661 1483 0 0 60 /** * Returns the current directory name. See chdir(). */ 1 4 this 3 1504 540 0 0 6 662 1277 0 0 263 /** * 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 1482 8 filename 1 1429 541 0 0 6 663 1277 0 0 169 /** * 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 1482 8 filename 1 1429 542 0 0 7 664 1434 1128 0 537 /** * 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 1504 8 filename 1 1429 11 status_only 1 1277 543 0 0 7 665 1434 1128 0 298 /** * 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 1482 8 filename 1 1429 544 0 0 7 666 1434 1128 0 173 /** * 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 1504 8 filename 1 1429 10 searchpath 1 1506 11 status_only 1 1277 545 0 0 6 667 1277 0 0 208 /** * 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 1482 8 filename 1 1429 546 0 0 6 668 1277 0 0 599 /** * 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 1482 13 orig_filename 1 1429 12 new_filename 1 1429 547 0 0 6 669 1277 0 0 131 /** * Attempts to copy the contents of the indicated file to the indicated file. * Returns true on success, false on failure. */ 3 4 this 3 1482 13 orig_filename 1 1429 12 new_filename 1 1429 548 0 0 6 670 1277 0 0 174 /** * 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 1504 8 filename 1 1483 10 searchpath 1 1506 17 default_extension 1 1388 549 0 0 6 671 1281 0 0 363 /** * 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 1504 8 filename 1 1429 10 searchpath 1 1506 7 results 1 1509 550 0 0 6 672 1277 0 0 71 /** * Convenience function; returns true if the named file exists. */ 2 4 this 3 1504 8 filename 1 1429 551 0 0 6 673 1277 0 0 93 /** * Convenience function; returns true if the named file exists and is a * directory. */ 2 4 this 3 1504 8 filename 1 1429 552 0 0 6 674 1277 0 0 96 /** * Convenience function; returns true if the named file exists and is a * regular file. */ 2 4 this 3 1504 8 filename 1 1429 553 0 0 7 675 1484 801 0 247 /** * 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 1504 8 filename 1 1429 554 0 0 4 676 1347 0 0 80 /** * Convenience function; lists the files within the indicated directory. */ 2 4 this 3 1504 8 filename 1 1429 555 0 0 4 677 1347 0 0 117 /** * Convenience function; lists the files within the indicated directory, and * all files below, recursively. */ 2 4 this 3 1504 8 filename 1 1429 556 0 0 4 678 1347 0 0 75 /** * Print debugging information. (e.g. from Python or gdb prompt). */ 2 4 this 3 1504 3 out 1 1357 557 0 0 6 679 1482 0 0 423 /** * 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 558 0 0 6 680 1348 0 0 365 /** * Convenience function; returns the entire contents of the indicated file as * a string. * * If auto_unwrap is true, an explicitly-named .pz/.gz 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 1504 8 filename 1 1429 11 auto_unwrap 1 1277 559 0 0 6 681 1449 0 0 424 /** * 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 1504 8 filename 1 1429 11 auto_unwrap 1 1277 560 0 0 4 682 1347 0 0 243 /** * 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 1449 561 0 0 6 683 1348 0 0 0 4 4 this 3 1482 8 filename 1 1429 4 data 1 1348 9 auto_wrap 1 1277 562 0 0 6 684 1357 0 0 345 /** * 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 1482 8 filename 1 1429 9 auto_wrap 1 1277 8 truncate 1 1277 563 0 0 6 685 1357 0 0 180 /** * 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 1482 8 filename 1 1429 564 0 0 4 686 1347 0 0 244 /** * 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 1357 565 0 0 6 687 1466 0 0 169 /** * 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 1482 8 filename 1 1429 8 truncate 1 1277 566 0 0 6 688 1466 0 0 194 /** * 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 1482 8 filename 1 1429 567 0 0 4 689 1347 0 0 250 /** * 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 1466 568 0 0 7 653 1511 1184 0 0 0 569 0 0 7 653 1511 1184 0 0 1 4 copy 1 1496 570 0 0 7 653 1511 1184 0 0 1 3 ptr 1 1496 571 0 0 7 653 1511 1184 0 0 1 6 param0 0 1512 572 0 0 7 654 1496 933 0 289 // If your base class is a derivative of TypedObject, you might want to use // the DCAST macro defined in typedObject.h instead, e.g. DCAST(MyType, // ptr). This provides a clean downcast that doesn't require .p() or any // double-casting, and it can be run-time checked for correctness. 1 4 this 3 1513 573 0 0 6 655 1511 0 0 0 2 4 this 3 1511 4 copy 1 1496 574 0 0 6 655 1511 0 0 0 2 4 this 3 1511 3 ptr 1 1496 575 0 0 6 656 1277 0 0 0 1 4 this 3 1513 576 0 0 4 657 1347 0 0 0 1 4 this 3 1511 577 0 0 4 651 1347 0 0 0 1 4 this 3 1515 578 0 0 4 652 1347 0 0 0 2 4 this 3 1516 3 out 1 1357 579 0 0 6 691 1331 0 0 203 // 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. 1 4 this 3 1518 580 0 0 6 694 1331 0 0 206 // 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. 1 4 this 3 1518 581 0 0 6 696 1331 0 0 144 // 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. 1 4 this 3 1518 582 0 0 6 698 1281 0 0 369 /** * 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 1519 583 0 0 6 700 1518 0 0 70 /** * Returns a pointer to the one TrueClock object in the world. */ 0 584 0 0 6 701 1277 0 0 0 2 4 this 3 1519 4 mask 1 1421 585 0 0 7 703 1521 1223 0 60 /** * Create a patch file and initializes internal data */ 0 586 0 0 7 703 1521 1223 0 49 /** * Create patch file with buffer to patch */ 1 6 buffer 1 1402 587 0 0 6 705 1277 0 0 359 /** * * 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 1521 9 file_orig 1 1483 8 file_new 1 1483 10 patch_name 1 1483 588 0 0 6 706 1281 0 0 193 /** * 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 1521 10 patch_file 1 1429 589 0 0 6 707 1281 0 0 107 /** * Set up to apply the patch to the file (original file and patch are * destroyed in the process). */ 3 4 this 3 1521 10 patch_file 1 1429 4 file 1 1429 590 0 0 6 707 1281 0 0 127 /** * 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 1521 10 patch_file 1 1429 9 orig_file 1 1429 11 target_file 1 1429 591 0 0 6 708 1281 0 0 350 /** * 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 1521 592 0 0 6 709 1277 0 0 171 /** * 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 1521 10 patch_file 1 1483 4 file 1 1483 593 0 0 6 709 1277 0 0 138 /** * 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 1521 10 patch_file 1 1483 9 orig_file 1 1483 11 target_file 1 1429 594 0 0 6 710 1333 0 0 125 /** * Returns a value in the range 0..1, representing the amount of progress * through the patchfile, during a session. */ 1 4 this 3 1522 595 0 0 4 714 1347 0 0 362 /** * 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 1521 15 allow_multifile 1 1277 596 0 0 6 715 1277 0 0 37 /** * See set_allow_multifile(). */ 1 4 this 3 1521 597 0 0 4 717 1347 0 0 10 /** * */ 2 4 this 3 1521 6 length 1 1281 598 0 0 6 718 1281 0 0 10 /** * */ 1 4 this 3 1521 599 0 0 4 719 1347 0 0 10 /** * */ 1 4 this 3 1521 600 0 0 6 721 1277 0 0 145 /** * 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 1522 601 0 0 6 722 1448 0 0 52 /** * Returns the MD5 hash for the source file. */ 1 4 this 3 1522 602 0 0 6 723 1448 0 0 78 /** * Returns the MD5 hash for the file after the patch has been applied. */ 1 4 this 3 1522 603 0 0 6 729 1277 0 0 384 /** * Returns true if the object we are pointing to has been deleted, false * otherwise. If this returns true, it means that the pointer can not yet be * reused, but it does not guarantee that it can be safely accessed. See the * lock() method for a safe way to access the underlying pointer. * * This will always return true for a null pointer, unlike is_valid_pointer(). */ 1 4 this 3 1524 604 0 0 6 730 1277 0 0 122 /** * Returns true if the pointer is not null and the object has not been * deleted. See was_deleted() for caveats. */ 1 4 this 3 1524 605 0 0 7 740 1526 1248 0 0 0 606 0 0 7 740 1526 1248 0 0 1 6 param0 0 1527 607 0 0 6 734 1277 0 0 302 /** * 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 1388 4 name 1 1388 5 value 1 1388 2 rl 1 1338 608 0 0 6 735 1277 0 0 142 /** * 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 1388 4 name 1 1388 5 value 1 1281 2 rl 1 1338 609 0 0 6 737 1339 0 0 115 /** * 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 1388 4 name 1 1388 2 rl 1 1338 610 0 0 6 738 1388 0 0 291 /** * 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 1388 4 name 1 1388 13 default_value 1 1388 2 rl 1 1338 611 0 0 6 739 1281 0 0 206 /** * 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 1388 4 name 1 1388 13 default_value 1 1281 2 rl 1 1338 612 0 0 6 226 1388 0 0 0 2 6 source 1 1388 17 compression_level 1 1281 613 0 0 6 227 1388 0 0 0 1 6 source 1 1388 614 0 0 6 228 1277 0 0 0 3 6 source 1 1429 4 dest 1 1429 17 compression_level 1 1281 615 0 0 6 229 1277 0 0 0 2 6 source 1 1429 4 dest 1 1429 616 0 0 6 230 1277 0 0 0 3 6 source 1 1449 4 dest 1 1357 17 compression_level 1 1281 617 0 0 6 231 1277 0 0 0 2 6 source 1 1449 4 dest 1 1357 618 0 0 6 232 1277 0 0 0 2 6 source 1 1449 4 dest 1 1357 619 0 0 6 372 1388 0 0 0 5 6 source 1 1388 8 password 1 1388 9 algorithm 1 1388 10 key_length 1 1281 15 iteration_count 1 1281 620 0 0 6 373 1388 0 0 0 2 6 source 1 1388 8 password 1 1388 621 0 0 6 374 1277 0 0 0 6 6 source 1 1429 4 dest 1 1429 8 password 1 1388 9 algorithm 1 1388 10 key_length 1 1281 15 iteration_count 1 1281 622 0 0 6 375 1277 0 0 0 3 6 source 1 1429 4 dest 1 1429 8 password 1 1388 623 0 0 6 376 1277 0 0 0 6 6 source 1 1449 4 dest 1 1357 8 password 1 1388 9 algorithm 1 1388 10 key_length 1 1281 15 iteration_count 1 1281 624 0 0 6 377 1277 0 0 0 3 6 source 1 1449 4 dest 1 1357 8 password 1 1388 625 0 0 6 379 1388 0 0 10 /** * */ 1 3 err 1 1298 626 0 0 6 380 1281 0 0 0 0 627 0 0 6 381 1388 0 0 10 /** * */ 0 628 0 0 6 382 1281 0 0 0 0 629 0 0 6 727 1388 0 0 0 4 8 password 1 1388 4 salt 1 1388 5 iters 1 1281 6 keylen 1 1281 280 1249 11 CPTA_double 0 2105345 11 CPTA_double 11 CPTA_double 0 0 1250 0 0 0 0 0 0 0 0 0 0 1250 29 ConstPointerToArray< double > 0 141313 29 ConstPointerToArray< double > 29 ConstPointerToArray< double > 0 0 0 1 636 648 0 11 637 638 639 640 641 642 643 644 645 646 647 0 0 1 0 1251 0 0 0 0 0 1251 28 PointerToArrayBase< double > 0 26625 28 PointerToArrayBase< double > 28 PointerToArrayBase< double > 0 0 0 0 635 0 0 0 0 1 0 1252 0 0 0 0 0 1252 49 PointerToBase< ReferenceCountedVector< double > > 0 43009 49 PointerToBase< ReferenceCountedVector< double > > 49 PointerToBase< ReferenceCountedVector< double > > 0 0 0 0 0 0 2 633 634 0 0 1 0 1253 0 0 0 0 0 1253 13 PointerToVoid 0 141313 13 PointerToVoid 13 PointerToVoid 0 0 0 0 632 0 2 630 631 0 0 1 0 1254 0 0 0 0 373 /** * 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. */ 1254 10 MemoryBase 0 2048 10 MemoryBase 10 MemoryBase 0 0 0 0 0 0 0 0 0 0 0 0 428 /** * 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). */ 1255 10 CPTA_float 0 2105345 10 CPTA_float 10 CPTA_float 0 0 1256 0 0 0 0 0 0 0 0 0 0 1256 28 ConstPointerToArray< float > 0 141313 28 ConstPointerToArray< float > 28 ConstPointerToArray< float > 0 0 0 1 652 664 0 11 653 654 655 656 657 658 659 660 661 662 663 0 0 1 0 1257 0 0 0 0 0 1257 27 PointerToArrayBase< float > 0 26625 27 PointerToArrayBase< float > 27 PointerToArrayBase< float > 0 0 0 0 651 0 0 0 0 1 0 1258 0 0 0 0 0 1258 48 PointerToBase< ReferenceCountedVector< float > > 0 43009 48 PointerToBase< ReferenceCountedVector< float > > 48 PointerToBase< ReferenceCountedVector< float > > 0 0 0 0 0 0 2 649 650 0 0 1 0 1253 0 0 0 0 0 1259 8 CPTA_int 0 2105345 8 CPTA_int 8 CPTA_int 0 0 1260 0 0 0 0 0 0 0 0 0 0 1260 26 ConstPointerToArray< int > 0 141313 26 ConstPointerToArray< int > 26 ConstPointerToArray< int > 0 0 0 1 668 680 0 11 669 670 671 672 673 674 675 676 677 678 679 0 0 1 0 1261 0 0 0 0 0 1261 25 PointerToArrayBase< int > 0 26625 25 PointerToArrayBase< int > 25 PointerToArrayBase< int > 0 0 0 0 667 0 0 0 0 1 0 1262 0 0 0 0 0 1262 46 PointerToBase< ReferenceCountedVector< int > > 0 43009 46 PointerToBase< ReferenceCountedVector< int > > 46 PointerToBase< ReferenceCountedVector< int > > 0 0 0 0 0 0 2 665 666 0 0 1 0 1253 0 0 0 0 0 1263 10 CPTA_uchar 0 2105345 10 CPTA_uchar 10 CPTA_uchar 0 0 1264 0 0 0 0 0 0 0 0 0 0 1264 36 ConstPointerToArray< unsigned char > 0 141313 36 ConstPointerToArray< unsigned char > 36 ConstPointerToArray< unsigned char > 0 0 0 1 684 696 0 11 685 686 687 688 689 690 691 692 693 694 695 0 0 1 0 1265 0 0 0 0 0 1265 35 PointerToArrayBase< unsigned char > 0 26625 35 PointerToArrayBase< unsigned char > 35 PointerToArrayBase< unsigned char > 0 0 0 0 683 0 0 0 0 1 0 1266 0 0 0 0 0 1266 56 PointerToBase< ReferenceCountedVector< unsigned char > > 0 43009 56 PointerToBase< ReferenceCountedVector< unsigned char > > 56 PointerToBase< ReferenceCountedVector< unsigned char > > 0 0 0 0 0 0 2 681 682 0 0 1 0 1253 0 0 0 0 0 1267 10 PTA_double 0 2105345 10 PTA_double 10 PTA_double 0 0 1268 0 0 0 0 0 0 0 0 0 0 1268 24 PointerToArray< double > 0 141313 24 PointerToArray< double > 24 PointerToArray< double > 0 0 0 1 697 716 0 18 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 0 0 1 0 1251 0 0 0 0 0 1269 9 PTA_float 0 2105345 9 PTA_float 9 PTA_float 0 0 1270 0 0 0 0 0 0 0 0 0 0 1270 23 PointerToArray< float > 0 141313 23 PointerToArray< float > 23 PointerToArray< float > 0 0 0 1 717 736 0 18 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 0 0 1 0 1257 0 0 0 0 0 1271 7 PTA_int 0 2105345 7 PTA_int 7 PTA_int 0 0 1272 0 0 0 0 0 0 0 0 0 0 1272 21 PointerToArray< int > 0 141313 21 PointerToArray< int > 21 PointerToArray< int > 0 0 0 1 737 756 0 18 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 0 0 1 0 1261 0 0 0 0 0 1273 9 PTA_uchar 0 2105345 9 PTA_uchar 9 PTA_uchar 0 0 1274 0 0 0 0 0 0 0 0 0 0 1274 31 PointerToArray< unsigned char > 0 141313 31 PointerToArray< unsigned char > 31 PointerToArray< unsigned char > 0 0 0 1 757 776 0 18 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 0 0 1 0 1265 0 0 0 0 0 1275 11 MemoryUsage 0 141313 11 MemoryUsage 11 MemoryUsage 0 0 0 1 797 798 10 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 20 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 0 0 1 0 1276 0 0 0 0 292 /** * 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 a stub. */ 1276 10 MemoryHook 0 2048 10 MemoryHook 10 MemoryHook 0 0 0 0 0 0 0 0 0 0 0 0 641 /** * 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.) */ 1277 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0 1278 6 size_t 0 2105344 11 std::size_t 11 std::size_t 0 0 1279 0 0 0 0 0 0 0 0 0 0 1279 22 unsigned long long int 0 8230 22 unsigned long long int 22 unsigned long long int 0 8 0 0 0 0 0 0 0 0 0 0 0 1280 14 ReferenceCount 0 26625 14 ReferenceCount 14 ReferenceCount 0 0 0 0 801 1 1539 6 802 803 804 805 806 807 0 0 1 3 1254 799 800 0 0 203 /** * 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. */ 1281 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0 1282 6 Buffer 0 75777 6 Buffer 6 Buffer 0 0 0 1 809 801 0 1 808 0 0 1 0 1280 0 0 0 0 10 /** * */ 1283 25 PStatCollectorForwardBase 0 75777 25 PStatCollectorForwardBase 25 PStatCollectorForwardBase 0 0 0 0 801 0 1 817 0 0 1 0 1280 0 0 0 0 282 /** * 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. */ 1284 18 NodeReferenceCount 0 43009 18 NodeReferenceCount 18 NodeReferenceCount 0 0 0 0 0 0 6 818 819 820 821 822 823 0 0 1 0 1280 0 0 0 0 603 /** * 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. */ 1285 8 Datagram 0 75777 8 Datagram 8 Datagram 0 0 0 1 824 0 0 47 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 0 0 1 0 1286 0 0 0 0 565 /** * 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. */ 1286 11 TypedObject 0 2048 11 TypedObject 11 TypedObject 0 0 0 0 0 0 0 0 0 0 0 0 2508 /** * 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() { * <<>>::init_type(); * <<>>::init_type(); * <<>>::init_type(); * register_type(_type_handle, "<<>>", * <<>>::get_class_type(), * <<>>::get_class_type(), * <<>>::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 <<>>::_type_handle; * @endcode * * @par In the class config_<<>>.cxx file: * @code * ConfigureFn(config_<<>>) { * <<>>::init_type(); * <<>>::init_type(); * <<>>::init_type(); * } * @endcode */ 1287 17 DatagramGenerator 0 26625 17 DatagramGenerator 17 DatagramGenerator 0 0 0 0 872 0 9 873 874 875 876 877 878 879 880 881 0 0 0 0 0 125 /** * This class defines the abstract interace to any source of datagrams, * whether it be from a file or from the net. */ 1288 16 DatagramIterator 0 141313 16 DatagramIterator 16 DatagramIterator 0 0 0 1 882 919 0 36 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 0 0 0 0 0 215 /** * 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. */ 1289 12 DatagramSink 0 26625 12 DatagramSink 12 DatagramSink 0 0 0 0 920 3 1540 1541 1542 7 921 922 923 924 925 926 927 0 0 0 0 0 135 /** * This class defines the abstract interface to sending datagrams to any * target, whether it be into a file or across the net */ 1290 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 1291 0 0 0 0 0 0 0 0 0 0 1291 8 Filename 0 2048 8 Filename 8 Filename 0 0 0 0 0 0 0 0 0 0 0 0 550 /** * 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. */ 1292 21 FileReference const * 0 8576 21 FileReference const * 21 FileReference const * 0 0 1293 0 0 0 0 0 0 0 0 0 0 1293 19 FileReference const 0 8832 19 FileReference const 19 FileReference const 0 0 1294 0 0 0 0 0 0 0 0 0 0 1294 13 FileReference 0 141313 13 FileReference 13 FileReference 0 0 0 1 934 937 0 2 935 936 0 0 1 0 1295 0 0 0 0 149 /** * 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. */ 1295 19 TypedReferenceCount 0 141313 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 933 0 1 932 0 0 2 3 1286 928 929 3 1280 930 931 0 0 410 /** * 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. */ 1296 9 streamoff 0 2105344 14 std::streamoff 14 std::streamoff 0 0 1297 0 0 0 0 0 0 0 0 0 0 1297 13 long long int 0 8226 13 long long int 13 long long int 0 8 0 0 0 0 0 0 0 0 0 0 0 1298 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 0 7 6 EU_eof 6 EU_eof 0 6 18 EU_network_no_data 18 EU_network_no_data 0 5 12 EU_write_ram 12 EU_write_ram 0 4 8 EU_write 8 EU_write 0 3 5 EU_ok 5 EU_ok 0 2 10 EU_success 10 EU_success 0 1 14 EU_error_abort 14 EU_error_abort 17 // General errors -1 19 EU_error_file_empty 19 EU_error_file_empty 0 -2 21 EU_error_file_invalid 21 EU_error_file_invalid 0 -3 25 EU_error_invalid_checksum 25 EU_error_invalid_checksum 0 -4 21 EU_error_network_dead 21 EU_error_network_dead 25 // General network errors -30 28 EU_error_network_unreachable 28 EU_error_network_unreachable 0 -31 29 EU_error_network_disconnected 29 EU_error_network_disconnected 0 -32 24 EU_error_network_timeout 24 EU_error_network_timeout 0 -33 24 EU_error_network_no_data 24 EU_error_network_no_data 0 -34 37 EU_error_network_disconnected_locally 37 EU_error_network_disconnected_locally 23 // Local network errors -40 32 EU_error_network_buffer_overflow 32 EU_error_network_buffer_overflow 0 -41 36 EU_error_network_disk_quota_exceeded 36 EU_error_network_disk_quota_exceeded 0 -42 41 EU_error_network_remote_host_disconnected 41 EU_error_network_remote_host_disconnected 29 // Remote host network errors -50 33 EU_error_network_remote_host_down 33 EU_error_network_remote_host_down 0 -51 40 EU_error_network_remote_host_unreachable 40 EU_error_network_remote_host_unreachable 0 -52 38 EU_error_network_remote_host_not_found 38 EU_error_network_remote_host_not_found 0 -53 40 EU_error_network_remote_host_no_response 40 EU_error_network_remote_host_no_response 0 -54 27 EU_error_write_out_of_files 27 EU_error_write_out_of_files 23 // General local errors -60 28 EU_error_write_out_of_memory 28 EU_error_write_out_of_memory 0 -61 32 EU_error_write_sharing_violation 32 EU_error_write_sharing_violation 0 -62 24 EU_error_write_disk_full 24 EU_error_write_disk_full 0 -63 29 EU_error_write_disk_not_found 29 EU_error_write_disk_not_found 0 -64 36 EU_error_write_disk_sector_not_found 36 EU_error_write_disk_sector_not_found 0 -65 25 EU_error_write_disk_fault 25 EU_error_write_disk_fault 0 -66 26 EU_error_write_file_rename 26 EU_error_write_file_rename 0 -67 28 EU_error_http_server_timeout 28 EU_error_http_server_timeout 14 // HTTP errors -70 29 EU_error_http_gateway_timeout 29 EU_error_http_gateway_timeout 0 -71 33 EU_error_http_service_unavailable 33 EU_error_http_service_unavailable 0 -72 34 EU_error_http_proxy_authentication 34 EU_error_http_proxy_authentication 0 -73 13 EU_error_zlib 13 EU_error_zlib 14 // Zlib errors -80 0 0 1299 7 Ramfile 0 141313 7 Ramfile 7 Ramfile 0 0 0 1 948 957 0 8 949 950 951 952 953 954 955 956 0 0 0 0 0 85 /** * An in-memory buffer specifically designed for downloading files to memory. */ 1300 7 HashVal 0 141313 7 HashVal 7 HashVal 0 0 0 1 958 988 0 29 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 0 0 0 0 0 109 /** * Stores a 128-bit value that represents the hashed contents (typically MD5) * of a file or buffer. */ 1301 19 MemoryUsagePointers 0 26625 19 MemoryUsagePointers 19 MemoryUsagePointers 0 0 0 1 989 990 0 9 991 992 993 994 995 996 997 998 999 2 1555 1556 0 0 0 0 785 /** * 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. */ 1302 10 ISubStream 0 141313 10 ISubStream 10 ISubStream 0 0 0 1 1000 1003 0 2 1001 1002 0 0 1 0 1303 0 0 0 0 392 /** * 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. */ 1303 7 istream 0 2048 12 std::istream 12 std::istream 0 0 0 0 0 0 0 0 0 0 0 0 0 1304 10 OSubStream 0 141313 10 OSubStream 10 OSubStream 0 0 0 1 1004 1007 0 2 1005 1006 0 0 1 0 1305 0 0 0 0 391 /** * 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. */ 1305 7 ostream 0 2048 12 std::ostream 12 std::ostream 0 0 0 0 0 0 0 0 0 0 0 0 0 1306 9 SubStream 0 141313 9 SubStream 9 SubStream 0 0 0 1 1008 1011 0 2 1009 1010 0 0 1 0 1307 0 0 0 0 68 /** * Combined ISubStream and OSubStream for bidirectional I/O. */ 1307 8 iostream 0 2048 13 std::iostream 13 std::iostream 0 0 0 0 0 0 0 0 0 0 0 0 0 1308 9 Multifile 0 75777 9 Multifile 9 Multifile 0 0 0 1 1012 801 1 1543 61 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1 1557 0 1 0 1280 0 0 0 0 47 /** * A file that contains a set of files. */ 1309 6 string 0 2105344 11 std::string 11 std::string 0 0 1310 0 0 0 0 0 0 0 0 0 0 1310 20 basic_string< char > 0 2048 25 std::basic_string< char > 25 std::basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0 1311 7 Namable 0 141313 7 Namable 7 Namable 0 0 0 1 1074 1081 1 1544 6 1075 1076 1077 1078 1079 1080 0 0 1 0 1254 0 0 0 0 125 /** * A base class for all things which can have a name. The name is either * empty or nonempty, but it is never NULL. */ 1312 12 string const 0 8832 17 std::string const 17 std::string const 0 0 1309 0 0 0 0 0 0 0 0 0 0 1313 14 OpenSSLWrapper 0 43009 14 OpenSSLWrapper 14 OpenSSLWrapper 0 0 0 0 0 0 8 1082 1083 1084 1085 1086 1087 1088 1089 0 0 0 0 0 205 /** * Provides an interface wrapper around the OpenSSL library, to ensure that * the library is properly initialized in the application, and to provide some * hooks into global OpenSSL context data. */ 1314 11 SubfileInfo 0 141313 11 SubfileInfo 11 SubfileInfo 0 0 0 1 1090 1098 0 7 1091 1092 1093 1094 1095 1096 1097 0 0 0 0 0 200 /** * 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. */ 1315 11 VirtualFile 0 141313 11 VirtualFile 11 VirtualFile 0 0 0 0 1128 0 29 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 0 0 1 0 1295 0 0 0 0 91 /** * The abstract base class for a file or directory within the * VirtualFileSystem. */ 1316 20 VirtualFileComposite 0 141313 20 VirtualFileComposite 20 VirtualFileComposite 0 0 0 0 1130 0 1 1129 0 0 1 0 1315 0 0 0 0 223 /** * 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. */ 1317 16 VirtualFileMount 0 75777 16 VirtualFileMount 16 VirtualFileMount 0 0 0 0 933 0 6 1131 1132 1133 1134 1135 1136 0 0 1 0 1295 0 0 0 0 159 /** * The abstract base class for a mount definition used within a * VirtualFileSystem. Normally users don't need to monkey with this class * directly. */ 1318 25 VirtualFileMountMultifile 0 75777 25 VirtualFileMountMultifile 25 VirtualFileMountMultifile 0 0 0 1 1137 933 0 2 1138 1139 0 0 1 0 1317 0 0 0 0 66 /** * Maps a Multifile's contents into the VirtualFileSystem. */ 1319 23 VirtualFileMountRamdisk 0 141313 23 VirtualFileMountRamdisk 23 VirtualFileMountRamdisk 0 0 0 1 1140 1142 0 1 1141 0 0 1 0 1317 0 0 0 0 384 /** * 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. */ 1320 22 VirtualFileMountSystem 0 141313 22 VirtualFileMountSystem 22 VirtualFileMountSystem 0 0 0 1 1143 1146 0 2 1144 1145 0 0 1 0 1317 0 0 0 0 66 /** * Maps an actual OS directory into the VirtualFileSystem. */ 1321 17 VirtualFileSimple 0 141313 17 VirtualFileSimple 17 VirtualFileSimple 0 0 0 0 1150 0 3 1147 1148 1149 0 0 1 0 1315 0 0 0 0 183 /** * 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. */ 1322 13 TemporaryFile 0 75777 13 TemporaryFile 13 TemporaryFile 0 0 0 1 1151 937 0 1 1152 0 0 1 0 1294 0 0 0 0 206 /** * 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. */ 1323 17 IDecompressStream 0 141313 17 IDecompressStream 17 IDecompressStream 0 0 0 1 1153 1156 0 2 1154 1155 0 0 1 0 1303 0 0 0 0 323 /** * 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. */ 1324 15 OCompressStream 0 141313 15 OCompressStream 15 OCompressStream 0 0 0 1 1157 1160 0 2 1158 1159 0 0 1 0 1305 0 0 0 0 311 /** * 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. */ 1325 15 VirtualFileList 0 75777 15 VirtualFileList 15 VirtualFileList 0 0 0 1 1167 801 0 6 1161 1162 1163 1164 1165 1166 1 1558 0 1 0 1280 0 0 0 0 80 /** * A list of VirtualFiles, as returned by VirtualFile::scan_directory(). */ 1326 17 VirtualFileSystem 0 26625 17 VirtualFileSystem 17 VirtualFileSystem 0 0 0 1 1168 1169 1 1545 37 1170 1171 1172 1173 1174 1175 1176 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1 1559 0 0 0 1 1327 352 /** * 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. */ 1327 10 MountFlags 0 794624 29 VirtualFileSystem::MountFlags 29 VirtualFileSystem::MountFlags 1326 0 0 0 0 0 0 0 0 0 1 12 MF_read_only 31 VirtualFileSystem::MF_read_only 0 2 0 0 1328 29 PointerTo< VirtualFileMount > 0 141313 29 PointerTo< VirtualFileMount > 29 PointerTo< VirtualFileMount > 0 0 0 1 1179 1184 0 4 1180 1181 1182 1183 0 0 1 0 1329 0 0 0 0 0 1329 33 PointerToBase< VirtualFileMount > 0 43009 33 PointerToBase< VirtualFileMount > 33 PointerToBase< VirtualFileMount > 0 0 0 0 0 0 2 1177 1178 0 0 1 0 1253 0 0 0 0 0 1330 9 TrueClock 0 43009 9 TrueClock 9 TrueClock 0 0 0 0 0 4 1546 1547 1548 1549 6 1216 1217 1218 1219 1220 1221 0 0 0 0 0 467 /** * 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. */ 1331 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0 1332 9 Patchfile 0 26625 9 Patchfile 9 Patchfile 0 0 0 1 1222 1223 5 1550 1551 1552 1553 1554 14 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 0 0 0 0 0 10 /** * */ 1333 11 PN_stdfloat 0 2105344 11 PN_stdfloat 11 PN_stdfloat 0 0 1334 0 0 0 0 0 0 0 0 0 0 1334 5 float 0 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0 1335 13 HashVal const 0 8832 13 HashVal const 13 HashVal const 0 0 1300 0 0 0 0 0 0 0 0 0 0 1336 17 WeakPointerToVoid 0 141313 17 WeakPointerToVoid 17 WeakPointerToVoid 0 0 0 0 1241 0 2 1239 1240 0 0 1 0 1253 0 0 0 0 152 /** * This is the specialization of PointerToVoid for weak pointers. It needs an * additional flag to indicate that the pointer has been deleted. */ 1337 15 WindowsRegistry 0 141313 15 WindowsRegistry 15 WindowsRegistry 0 0 0 1 1247 1248 0 5 1242 1243 1244 1245 1246 0 0 0 0 2 1338 1339 249 /** * 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). */ 1338 8 RegLevel 0 794624 25 WindowsRegistry::RegLevel 25 WindowsRegistry::RegLevel 1337 0 0 0 0 0 0 0 0 0 2 10 rl_machine 27 WindowsRegistry::rl_machine 0 0 7 rl_user 24 WindowsRegistry::rl_user 0 1 0 0 1339 4 Type 0 794624 21 WindowsRegistry::Type 21 WindowsRegistry::Type 1337 0 0 0 0 0 0 0 0 0 3 6 T_none 23 WindowsRegistry::T_none 0 0 5 T_int 22 WindowsRegistry::T_int 0 1 8 T_string 25 WindowsRegistry::T_string 0 2 0 0 1340 12 PTA_stdfloat 0 2105345 12 PTA_stdfloat 12 PTA_stdfloat 0 0 1269 0 0 0 0 0 0 0 0 0 0 1341 13 CPTA_stdfloat 0 2105345 13 CPTA_stdfloat 13 CPTA_stdfloat 0 0 1255 0 0 0 0 0 0 0 0 0 0 1342 37 ConstPointerToArray< double > const * 0 8576 37 ConstPointerToArray< double > const * 37 ConstPointerToArray< double > const * 0 0 1343 0 0 0 0 0 0 0 0 0 0 1343 35 ConstPointerToArray< double > const 0 8832 35 ConstPointerToArray< double > const 35 ConstPointerToArray< double > const 0 0 1250 0 0 0 0 0 0 0 0 0 0 1344 31 ConstPointerToArray< double > * 0 8576 31 ConstPointerToArray< double > * 31 ConstPointerToArray< double > * 0 0 1250 0 0 0 0 0 0 0 0 0 0 1345 32 PointerToArray< double > const * 0 8576 32 PointerToArray< double > const * 32 PointerToArray< double > const * 0 0 1346 0 0 0 0 0 0 0 0 0 0 1346 30 PointerToArray< double > const 0 8832 30 PointerToArray< double > const 30 PointerToArray< double > const 0 0 1268 0 0 0 0 0 0 0 0 0 0 1347 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0 1348 10 PyObject * 0 8576 10 PyObject * 10 PyObject * 0 0 1349 0 0 0 0 0 0 0 0 0 0 1349 8 PyObject 0 2105344 8 PyObject 8 PyObject 0 0 1350 0 0 0 0 0 0 0 0 0 0 1350 7 _object 0 1024 7 _object 7 _object 0 0 0 0 0 0 0 0 0 0 0 0 0 1351 11 Py_buffer * 0 8576 11 Py_buffer * 11 Py_buffer * 0 0 1352 0 0 0 0 0 0 0 0 0 0 1352 9 Py_buffer 0 2105344 9 Py_buffer 9 Py_buffer 0 0 1353 0 0 0 0 0 0 0 0 0 0 1353 10 bufferinfo 0 1024 10 bufferinfo 10 bufferinfo 0 0 0 0 0 0 0 0 0 0 0 0 0 1354 51 PointerToBase< ReferenceCountedVector< double > > * 0 8576 51 PointerToBase< ReferenceCountedVector< double > > * 51 PointerToBase< ReferenceCountedVector< double > > * 0 0 1252 0 0 0 0 0 0 0 0 0 0 1355 57 PointerToBase< ReferenceCountedVector< double > > const * 0 8576 57 PointerToBase< ReferenceCountedVector< double > > const * 57 PointerToBase< ReferenceCountedVector< double > > const * 0 0 1356 0 0 0 0 0 0 0 0 0 0 1356 55 PointerToBase< ReferenceCountedVector< double > > const 0 8832 55 PointerToBase< ReferenceCountedVector< double > > const 55 PointerToBase< ReferenceCountedVector< double > > const 0 0 1252 0 0 0 0 0 0 0 0 0 0 1357 9 ostream * 0 8576 14 std::ostream * 14 std::ostream * 0 0 1305 0 0 0 0 0 0 0 0 0 0 1358 21 PointerToVoid const * 0 8576 21 PointerToVoid const * 21 PointerToVoid const * 0 0 1359 0 0 0 0 0 0 0 0 0 0 1359 19 PointerToVoid const 0 8832 19 PointerToVoid const 19 PointerToVoid const 0 0 1253 0 0 0 0 0 0 0 0 0 0 1360 36 ConstPointerToArray< float > const * 0 8576 36 ConstPointerToArray< float > const * 36 ConstPointerToArray< float > const * 0 0 1361 0 0 0 0 0 0 0 0 0 0 1361 34 ConstPointerToArray< float > const 0 8832 34 ConstPointerToArray< float > const 34 ConstPointerToArray< float > const 0 0 1256 0 0 0 0 0 0 0 0 0 0 1362 30 ConstPointerToArray< float > * 0 8576 30 ConstPointerToArray< float > * 30 ConstPointerToArray< float > * 0 0 1256 0 0 0 0 0 0 0 0 0 0 1363 31 PointerToArray< float > const * 0 8576 31 PointerToArray< float > const * 31 PointerToArray< float > const * 0 0 1364 0 0 0 0 0 0 0 0 0 0 1364 29 PointerToArray< float > const 0 8832 29 PointerToArray< float > const 29 PointerToArray< float > const 0 0 1270 0 0 0 0 0 0 0 0 0 0 1365 50 PointerToBase< ReferenceCountedVector< float > > * 0 8576 50 PointerToBase< ReferenceCountedVector< float > > * 50 PointerToBase< ReferenceCountedVector< float > > * 0 0 1258 0 0 0 0 0 0 0 0 0 0 1366 56 PointerToBase< ReferenceCountedVector< float > > const * 0 8576 56 PointerToBase< ReferenceCountedVector< float > > const * 56 PointerToBase< ReferenceCountedVector< float > > const * 0 0 1367 0 0 0 0 0 0 0 0 0 0 1367 54 PointerToBase< ReferenceCountedVector< float > > const 0 8832 54 PointerToBase< ReferenceCountedVector< float > > const 54 PointerToBase< ReferenceCountedVector< float > > const 0 0 1258 0 0 0 0 0 0 0 0 0 0 1368 34 ConstPointerToArray< int > const * 0 8576 34 ConstPointerToArray< int > const * 34 ConstPointerToArray< int > const * 0 0 1369 0 0 0 0 0 0 0 0 0 0 1369 32 ConstPointerToArray< int > const 0 8832 32 ConstPointerToArray< int > const 32 ConstPointerToArray< int > const 0 0 1260 0 0 0 0 0 0 0 0 0 0 1370 28 ConstPointerToArray< int > * 0 8576 28 ConstPointerToArray< int > * 28 ConstPointerToArray< int > * 0 0 1260 0 0 0 0 0 0 0 0 0 0 1371 29 PointerToArray< int > const * 0 8576 29 PointerToArray< int > const * 29 PointerToArray< int > const * 0 0 1372 0 0 0 0 0 0 0 0 0 0 1372 27 PointerToArray< int > const 0 8832 27 PointerToArray< int > const 27 PointerToArray< int > const 0 0 1272 0 0 0 0 0 0 0 0 0 0 1373 48 PointerToBase< ReferenceCountedVector< int > > * 0 8576 48 PointerToBase< ReferenceCountedVector< int > > * 48 PointerToBase< ReferenceCountedVector< int > > * 0 0 1262 0 0 0 0 0 0 0 0 0 0 1374 54 PointerToBase< ReferenceCountedVector< int > > const * 0 8576 54 PointerToBase< ReferenceCountedVector< int > > const * 54 PointerToBase< ReferenceCountedVector< int > > const * 0 0 1375 0 0 0 0 0 0 0 0 0 0 1375 52 PointerToBase< ReferenceCountedVector< int > > const 0 8832 52 PointerToBase< ReferenceCountedVector< int > > const 52 PointerToBase< ReferenceCountedVector< int > > const 0 0 1262 0 0 0 0 0 0 0 0 0 0 1376 44 ConstPointerToArray< unsigned char > const * 0 8576 44 ConstPointerToArray< unsigned char > const * 44 ConstPointerToArray< unsigned char > const * 0 0 1377 0 0 0 0 0 0 0 0 0 0 1377 42 ConstPointerToArray< unsigned char > const 0 8832 42 ConstPointerToArray< unsigned char > const 42 ConstPointerToArray< unsigned char > const 0 0 1264 0 0 0 0 0 0 0 0 0 0 1378 38 ConstPointerToArray< unsigned char > * 0 8576 38 ConstPointerToArray< unsigned char > * 38 ConstPointerToArray< unsigned char > * 0 0 1264 0 0 0 0 0 0 0 0 0 0 1379 39 PointerToArray< unsigned char > const * 0 8576 39 PointerToArray< unsigned char > const * 39 PointerToArray< unsigned char > const * 0 0 1380 0 0 0 0 0 0 0 0 0 0 1380 37 PointerToArray< unsigned char > const 0 8832 37 PointerToArray< unsigned char > const 37 PointerToArray< unsigned char > const 0 0 1274 0 0 0 0 0 0 0 0 0 0 1381 13 unsigned char 0 8198 13 unsigned char 13 unsigned char 0 5 0 0 0 0 0 0 0 0 0 0 0 1382 58 PointerToBase< ReferenceCountedVector< unsigned char > > * 0 8576 58 PointerToBase< ReferenceCountedVector< unsigned char > > * 58 PointerToBase< ReferenceCountedVector< unsigned char > > * 0 0 1266 0 0 0 0 0 0 0 0 0 0 1383 64 PointerToBase< ReferenceCountedVector< unsigned char > > const * 0 8576 64 PointerToBase< ReferenceCountedVector< unsigned char > > const * 64 PointerToBase< ReferenceCountedVector< unsigned char > > const * 0 0 1384 0 0 0 0 0 0 0 0 0 0 1384 62 PointerToBase< ReferenceCountedVector< unsigned char > > const 0 8832 62 PointerToBase< ReferenceCountedVector< unsigned char > > const 62 PointerToBase< ReferenceCountedVector< unsigned char > > const 0 0 1266 0 0 0 0 0 0 0 0 0 0 1385 26 PointerToArray< double > * 0 8576 26 PointerToArray< double > * 26 PointerToArray< double > * 0 0 1268 0 0 0 0 0 0 0 0 0 0 1386 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 1387 0 0 0 0 0 0 0 0 0 0 1387 10 TypeHandle 0 16779264 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 732 /** * 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. */ 1388 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0 1389 25 PointerToArray< float > * 0 8576 25 PointerToArray< float > * 25 PointerToArray< float > * 0 0 1270 0 0 0 0 0 0 0 0 0 0 1390 23 PointerToArray< int > * 0 8576 23 PointerToArray< int > * 23 PointerToArray< int > * 0 0 1272 0 0 0 0 0 0 0 0 0 0 1391 33 PointerToArray< unsigned char > * 0 8576 33 PointerToArray< unsigned char > * 33 PointerToArray< unsigned char > * 0 0 1274 0 0 0 0 0 0 0 0 0 0 1392 19 MemoryUsage const * 0 8576 19 MemoryUsage const * 19 MemoryUsage const * 0 0 1393 0 0 0 0 0 0 0 0 0 0 1393 17 MemoryUsage const 0 8832 17 MemoryUsage const 17 MemoryUsage const 0 0 1275 0 0 0 0 0 0 0 0 0 0 1394 13 MemoryUsage * 0 8576 13 MemoryUsage * 13 MemoryUsage * 0 0 1275 0 0 0 0 0 0 0 0 0 0 1395 21 MemoryUsagePointers * 0 8576 21 MemoryUsagePointers * 21 MemoryUsagePointers * 0 0 1301 0 0 0 0 0 0 0 0 0 0 1396 22 ReferenceCount const * 0 8576 22 ReferenceCount const * 22 ReferenceCount const * 0 0 1397 0 0 0 0 0 0 0 0 0 0 1397 20 ReferenceCount const 0 8832 20 ReferenceCount const 20 ReferenceCount const 0 0 1280 0 0 0 0 0 0 0 0 0 0 1398 16 ReferenceCount * 0 8576 16 ReferenceCount * 16 ReferenceCount * 0 0 1280 0 0 0 0 0 0 0 0 0 0 1399 12 MemoryBase * 0 8576 12 MemoryBase * 12 MemoryBase * 0 0 1254 0 0 0 0 0 0 0 0 0 0 1400 14 Buffer const * 0 8576 14 Buffer const * 14 Buffer const * 0 0 1401 0 0 0 0 0 0 0 0 0 0 1401 12 Buffer const 0 8832 12 Buffer const 12 Buffer const 0 0 1282 0 0 0 0 0 0 0 0 0 0 1402 8 Buffer * 0 8576 8 Buffer * 8 Buffer * 0 0 1282 0 0 0 0 0 0 0 0 0 0 1403 27 PStatCollectorForwardBase * 0 8576 27 PStatCollectorForwardBase * 27 PStatCollectorForwardBase * 0 0 1283 0 0 0 0 0 0 0 0 0 0 1404 26 NodeReferenceCount const * 0 8576 26 NodeReferenceCount const * 26 NodeReferenceCount const * 0 0 1405 0 0 0 0 0 0 0 0 0 0 1405 24 NodeReferenceCount const 0 8832 24 NodeReferenceCount const 24 NodeReferenceCount const 0 0 1284 0 0 0 0 0 0 0 0 0 0 1406 10 Datagram * 0 8576 10 Datagram * 10 Datagram * 0 0 1285 0 0 0 0 0 0 0 0 0 0 1407 16 Datagram const * 0 8576 16 Datagram const * 16 Datagram const * 0 0 1408 0 0 0 0 0 0 0 0 0 0 1408 14 Datagram const 0 8832 14 Datagram const 14 Datagram const 0 0 1285 0 0 0 0 0 0 0 0 0 0 1409 12 vector_uchar 0 2105344 12 vector_uchar 12 vector_uchar 0 0 1410 0 0 0 0 0 0 0 0 0 0 1410 24 pvector< unsigned char > 0 2048 24 pvector< unsigned char > 24 pvector< unsigned char > 0 0 0 0 0 0 0 0 0 0 0 0 0 1411 12 unsigned int 0 8198 12 unsigned int 12 unsigned int 0 1 0 0 0 0 0 0 0 0 0 0 0 1412 6 int8_t 0 2105344 6 int8_t 6 int8_t 0 0 1413 0 0 0 0 0 0 0 0 0 0 1413 11 signed char 0 8202 11 signed char 11 signed char 0 5 0 0 0 0 0 0 0 0 0 0 0 1414 7 uint8_t 0 2105344 7 uint8_t 7 uint8_t 0 0 1381 0 0 0 0 0 0 0 0 0 0 1415 7 int16_t 0 2105344 7 int16_t 7 int16_t 0 0 1416 0 0 0 0 0 0 0 0 0 0 1416 9 short int 0 8258 9 short int 9 short int 0 1 0 0 0 0 0 0 0 0 0 0 0 1417 7 int32_t 0 2105344 7 int32_t 7 int32_t 0 0 1281 0 0 0 0 0 0 0 0 0 0 1418 7 int64_t 0 2105344 7 int64_t 7 int64_t 0 0 1297 0 0 0 0 0 0 0 0 0 0 1419 8 uint16_t 0 2105344 8 uint16_t 8 uint16_t 0 0 1420 0 0 0 0 0 0 0 0 0 0 1420 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 1421 8 uint32_t 0 2105344 8 uint32_t 8 uint32_t 0 0 1411 0 0 0 0 0 0 0 0 0 0 1422 8 uint64_t 0 2105344 8 uint64_t 8 uint64_t 0 0 1279 0 0 0 0 0 0 0 0 0 0 1423 10 PN_float32 0 2105344 10 PN_float32 10 PN_float32 0 0 1334 0 0 0 0 0 0 0 0 0 0 1424 10 PN_float64 0 2105344 10 PN_float64 10 PN_float64 0 0 1331 0 0 0 0 0 0 0 0 0 0 1425 11 PTA_uchar * 0 8576 11 PTA_uchar * 11 PTA_uchar * 0 0 1273 0 0 0 0 0 0 0 0 0 0 1426 12 CPTA_uchar * 0 8576 12 CPTA_uchar * 12 CPTA_uchar * 0 0 1263 0 0 0 0 0 0 0 0 0 0 1427 19 DatagramGenerator * 0 8576 19 DatagramGenerator * 19 DatagramGenerator * 0 0 1287 0 0 0 0 0 0 0 0 0 0 1428 13 SubfileInfo * 0 8576 13 SubfileInfo * 13 SubfileInfo * 0 0 1314 0 0 0 0 0 0 0 0 0 0 1429 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 1290 0 0 0 0 0 0 0 0 0 0 1430 25 DatagramGenerator const * 0 8576 25 DatagramGenerator const * 25 DatagramGenerator const * 0 0 1431 0 0 0 0 0 0 0 0 0 0 1431 23 DatagramGenerator const 0 8832 23 DatagramGenerator const 23 DatagramGenerator const 0 0 1287 0 0 0 0 0 0 0 0 0 0 1432 6 time_t 0 2105344 6 time_t 6 time_t 0 0 1433 0 0 0 0 0 0 0 0 0 0 1433 8 long int 0 8210 8 long int 8 long int 0 1 0 0 0 0 0 0 0 0 0 0 0 1434 13 VirtualFile * 0 8576 13 VirtualFile * 13 VirtualFile * 0 0 1315 0 0 0 0 0 0 0 0 0 0 1435 18 DatagramIterator * 0 8576 18 DatagramIterator * 18 DatagramIterator * 0 0 1288 0 0 0 0 0 0 0 0 0 0 1436 24 DatagramIterator const * 0 8576 24 DatagramIterator const * 24 DatagramIterator const * 0 0 1437 0 0 0 0 0 0 0 0 0 0 1437 22 DatagramIterator const 0 8832 22 DatagramIterator const 22 DatagramIterator const 0 0 1288 0 0 0 0 0 0 0 0 0 0 1438 14 DatagramSink * 0 8576 14 DatagramSink * 14 DatagramSink * 0 0 1289 0 0 0 0 0 0 0 0 0 0 1439 19 SubfileInfo const * 0 8576 19 SubfileInfo const * 19 SubfileInfo const * 0 0 1440 0 0 0 0 0 0 0 0 0 0 1440 17 SubfileInfo const 0 8832 17 SubfileInfo const 17 SubfileInfo const 0 0 1314 0 0 0 0 0 0 0 0 0 0 1441 15 FileReference * 0 8576 15 FileReference * 15 FileReference * 0 0 1294 0 0 0 0 0 0 0 0 0 0 1442 21 TypedReferenceCount * 0 8576 21 TypedReferenceCount * 21 TypedReferenceCount * 0 0 1295 0 0 0 0 0 0 0 0 0 0 1443 13 TypedObject * 0 8576 13 TypedObject * 13 TypedObject * 0 0 1286 0 0 0 0 0 0 0 0 0 0 1444 9 Ramfile * 0 8576 9 Ramfile * 9 Ramfile * 0 0 1299 0 0 0 0 0 0 0 0 0 0 1445 15 Ramfile const * 0 8576 15 Ramfile const * 15 Ramfile const * 0 0 1446 0 0 0 0 0 0 0 0 0 0 1446 13 Ramfile const 0 8832 13 Ramfile const 13 Ramfile const 0 0 1299 0 0 0 0 0 0 0 0 0 0 1447 9 HashVal * 0 8576 9 HashVal * 9 HashVal * 0 0 1300 0 0 0 0 0 0 0 0 0 0 1448 15 HashVal const * 0 8576 15 HashVal const * 15 HashVal const * 0 0 1335 0 0 0 0 0 0 0 0 0 0 1449 9 istream * 0 8576 14 std::istream * 14 std::istream * 0 0 1303 0 0 0 0 0 0 0 0 0 0 1450 14 StreamWriter * 0 8576 14 StreamWriter * 14 StreamWriter * 0 0 1451 0 0 0 0 0 0 0 0 0 0 1451 12 StreamWriter 0 2048 12 StreamWriter 12 StreamWriter 0 0 0 0 0 0 0 0 0 0 0 0 300 /** * 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. */ 1452 14 StreamReader * 0 8576 14 StreamReader * 14 StreamReader * 0 0 1453 0 0 0 0 0 0 0 0 0 0 1453 12 StreamReader 0 2048 12 StreamReader 12 StreamReader 0 0 0 0 0 0 0 0 0 0 0 0 158 /** * A class to read sequential binary data directly from an istream. Its * interface is similar to DatagramIterator by design; see also StreamWriter. */ 1454 27 MemoryUsagePointers const * 0 8576 27 MemoryUsagePointers const * 27 MemoryUsagePointers const * 0 0 1455 0 0 0 0 0 0 0 0 0 0 1455 25 MemoryUsagePointers const 0 8832 25 MemoryUsagePointers const 25 MemoryUsagePointers const 0 0 1301 0 0 0 0 0 0 0 0 0 0 1456 12 ISubStream * 0 8576 12 ISubStream * 12 ISubStream * 0 0 1302 0 0 0 0 0 0 0 0 0 0 1457 16 IStreamWrapper * 0 8576 16 IStreamWrapper * 16 IStreamWrapper * 0 0 1458 0 0 0 0 0 0 0 0 0 0 1458 14 IStreamWrapper 0 2048 14 IStreamWrapper 14 IStreamWrapper 0 0 0 0 0 0 0 0 0 0 0 0 168 /** * 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. */ 1459 12 OSubStream * 0 8576 12 OSubStream * 12 OSubStream * 0 0 1304 0 0 0 0 0 0 0 0 0 0 1460 16 OStreamWrapper * 0 8576 16 OStreamWrapper * 16 OStreamWrapper * 0 0 1461 0 0 0 0 0 0 0 0 0 0 1461 14 OStreamWrapper 0 2048 14 OStreamWrapper 14 OStreamWrapper 0 0 0 0 0 0 0 0 0 0 0 0 159 /** * This class provides a locking wrapper around an arbitrary ostream pointer. * A thread may use this class to perform an atomic seek/write operation. */ 1462 11 SubStream * 0 8576 11 SubStream * 11 SubStream * 0 0 1306 0 0 0 0 0 0 0 0 0 0 1463 15 StreamWrapper * 0 8576 15 StreamWrapper * 15 StreamWrapper * 0 0 1464 0 0 0 0 0 0 0 0 0 0 1464 13 StreamWrapper 0 2048 13 StreamWrapper 13 StreamWrapper 0 0 0 0 0 0 0 0 0 0 0 0 97 /** * This class provides a locking wrapper around a combination ostream/istream * pointer. */ 1465 11 Multifile * 0 8576 11 Multifile * 11 Multifile * 0 0 1308 0 0 0 0 0 0 0 0 0 0 1466 10 iostream * 0 8576 15 std::iostream * 15 std::iostream * 0 0 1307 0 0 0 0 0 0 0 0 0 0 1467 17 Multifile const * 0 8576 17 Multifile const * 17 Multifile const * 0 0 1468 0 0 0 0 0 0 0 0 0 0 1468 15 Multifile const 0 8832 15 Multifile const 15 Multifile const 0 0 1308 0 0 0 0 0 0 0 0 0 0 1469 15 vector_string * 0 8576 15 vector_string * 15 vector_string * 0 0 1470 0 0 0 0 0 0 0 0 0 0 1470 13 vector_string 0 2105344 13 vector_string 13 vector_string 0 0 1471 0 0 0 0 0 0 0 0 0 0 1471 17 pvector< string > 0 2048 22 pvector< std::string > 22 pvector< std::string > 0 0 0 0 0 0 0 0 0 0 0 0 0 1472 15 Namable const * 0 8576 15 Namable const * 15 Namable const * 0 0 1473 0 0 0 0 0 0 0 0 0 0 1473 13 Namable const 0 8832 13 Namable const 13 Namable const 0 0 1311 0 0 0 0 0 0 0 0 0 0 1474 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 1311 0 0 0 0 0 0 0 0 0 0 1475 16 OpenSSLWrapper * 0 8576 16 OpenSSLWrapper * 16 OpenSSLWrapper * 0 0 1313 0 0 0 0 0 0 0 0 0 0 1476 12 X509_STORE * 0 8576 12 X509_STORE * 12 X509_STORE * 0 0 1477 0 0 0 0 0 0 0 0 0 0 1477 10 X509_STORE 0 2105344 10 X509_STORE 10 X509_STORE 0 0 1478 0 0 0 0 0 0 0 0 0 0 1478 13 x509_store_st 0 1024 13 x509_store_st 13 x509_store_st 0 0 0 0 0 0 0 0 0 0 0 0 0 1479 10 streamsize 0 2105344 15 std::streamsize 15 std::streamsize 0 0 1297 0 0 0 0 0 0 0 0 0 0 1480 19 VirtualFile const * 0 8576 19 VirtualFile const * 19 VirtualFile const * 0 0 1481 0 0 0 0 0 0 0 0 0 0 1481 17 VirtualFile const 0 8832 17 VirtualFile const 17 VirtualFile const 0 0 1315 0 0 0 0 0 0 0 0 0 0 1482 19 VirtualFileSystem * 0 8576 19 VirtualFileSystem * 19 VirtualFileSystem * 0 0 1326 0 0 0 0 0 0 0 0 0 0 1483 10 Filename * 0 8576 10 Filename * 10 Filename * 0 0 1291 0 0 0 0 0 0 0 0 0 0 1484 17 VirtualFileList * 0 8576 17 VirtualFileList * 17 VirtualFileList * 0 0 1325 0 0 0 0 0 0 0 0 0 0 1485 24 VirtualFileMount const * 0 8576 24 VirtualFileMount const * 24 VirtualFileMount const * 0 0 1486 0 0 0 0 0 0 0 0 0 0 1486 22 VirtualFileMount const 0 8832 22 VirtualFileMount const 22 VirtualFileMount const 0 0 1317 0 0 0 0 0 0 0 0 0 0 1487 27 VirtualFileMountMultifile * 0 8576 27 VirtualFileMountMultifile * 27 VirtualFileMountMultifile * 0 0 1318 0 0 0 0 0 0 0 0 0 0 1488 33 VirtualFileMountMultifile const * 0 8576 33 VirtualFileMountMultifile const * 33 VirtualFileMountMultifile const * 0 0 1489 0 0 0 0 0 0 0 0 0 0 1489 31 VirtualFileMountMultifile const 0 8832 31 VirtualFileMountMultifile const 31 VirtualFileMountMultifile const 0 0 1318 0 0 0 0 0 0 0 0 0 0 1490 25 VirtualFileMountRamdisk * 0 8576 25 VirtualFileMountRamdisk * 25 VirtualFileMountRamdisk * 0 0 1319 0 0 0 0 0 0 0 0 0 0 1491 24 VirtualFileMountSystem * 0 8576 24 VirtualFileMountSystem * 24 VirtualFileMountSystem * 0 0 1320 0 0 0 0 0 0 0 0 0 0 1492 30 VirtualFileMountSystem const * 0 8576 30 VirtualFileMountSystem const * 30 VirtualFileMountSystem const * 0 0 1493 0 0 0 0 0 0 0 0 0 0 1493 28 VirtualFileMountSystem const 0 8832 28 VirtualFileMountSystem const 28 VirtualFileMountSystem const 0 0 1320 0 0 0 0 0 0 0 0 0 0 1494 25 VirtualFileSimple const * 0 8576 25 VirtualFileSimple const * 25 VirtualFileSimple const * 0 0 1495 0 0 0 0 0 0 0 0 0 0 1495 23 VirtualFileSimple const 0 8832 23 VirtualFileSimple const 23 VirtualFileSimple const 0 0 1321 0 0 0 0 0 0 0 0 0 0 1496 18 VirtualFileMount * 0 8576 18 VirtualFileMount * 18 VirtualFileMount * 0 0 1317 0 0 0 0 0 0 0 0 0 0 1497 15 TemporaryFile * 0 8576 15 TemporaryFile * 15 TemporaryFile * 0 0 1322 0 0 0 0 0 0 0 0 0 0 1498 21 TemporaryFile const * 0 8576 21 TemporaryFile const * 21 TemporaryFile const * 0 0 1499 0 0 0 0 0 0 0 0 0 0 1499 19 TemporaryFile const 0 8832 19 TemporaryFile const 19 TemporaryFile const 0 0 1322 0 0 0 0 0 0 0 0 0 0 1500 19 IDecompressStream * 0 8576 19 IDecompressStream * 19 IDecompressStream * 0 0 1323 0 0 0 0 0 0 0 0 0 0 1501 17 OCompressStream * 0 8576 17 OCompressStream * 17 OCompressStream * 0 0 1324 0 0 0 0 0 0 0 0 0 0 1502 23 VirtualFileList const * 0 8576 23 VirtualFileList const * 23 VirtualFileList const * 0 0 1503 0 0 0 0 0 0 0 0 0 0 1503 21 VirtualFileList const 0 8832 21 VirtualFileList const 21 VirtualFileList const 0 0 1325 0 0 0 0 0 0 0 0 0 0 1504 25 VirtualFileSystem const * 0 8576 25 VirtualFileSystem const * 25 VirtualFileSystem const * 0 0 1505 0 0 0 0 0 0 0 0 0 0 1505 23 VirtualFileSystem const 0 8832 23 VirtualFileSystem const 23 VirtualFileSystem const 0 0 1326 0 0 0 0 0 0 0 0 0 0 1506 19 DSearchPath const * 0 8576 19 DSearchPath const * 19 DSearchPath const * 0 0 1507 0 0 0 0 0 0 0 0 0 0 1507 17 DSearchPath const 0 8832 17 DSearchPath const 17 DSearchPath const 0 0 1508 0 0 0 0 0 0 0 0 0 0 1508 11 DSearchPath 0 2048 11 DSearchPath 11 DSearchPath 0 0 0 0 0 0 0 0 0 0 0 0 304 /** * 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. */ 1509 9 Results * 0 8576 22 DSearchPath::Results * 22 DSearchPath::Results * 0 0 1510 0 0 0 0 0 0 0 0 0 0 1510 7 Results 0 264192 20 DSearchPath::Results 20 DSearchPath::Results 1508 0 0 0 0 0 0 0 0 0 0 0 0 1511 31 PointerTo< VirtualFileMount > * 0 8576 31 PointerTo< VirtualFileMount > * 31 PointerTo< VirtualFileMount > * 0 0 1328 0 0 0 0 0 0 0 0 0 0 1512 17 decltype(nullptr) 0 8194 17 decltype(nullptr) 17 decltype(nullptr) 0 9 0 0 0 0 0 0 0 0 0 0 0 1513 37 PointerTo< VirtualFileMount > const * 0 8576 37 PointerTo< VirtualFileMount > const * 37 PointerTo< VirtualFileMount > const * 0 0 1514 0 0 0 0 0 0 0 0 0 0 1514 35 PointerTo< VirtualFileMount > const 0 8832 35 PointerTo< VirtualFileMount > const 35 PointerTo< VirtualFileMount > const 0 0 1328 0 0 0 0 0 0 0 0 0 0 1515 35 PointerToBase< VirtualFileMount > * 0 8576 35 PointerToBase< VirtualFileMount > * 35 PointerToBase< VirtualFileMount > * 0 0 1329 0 0 0 0 0 0 0 0 0 0 1516 41 PointerToBase< VirtualFileMount > const * 0 8576 41 PointerToBase< VirtualFileMount > const * 41 PointerToBase< VirtualFileMount > const * 0 0 1517 0 0 0 0 0 0 0 0 0 0 1517 39 PointerToBase< VirtualFileMount > const 0 8832 39 PointerToBase< VirtualFileMount > const 39 PointerToBase< VirtualFileMount > const 0 0 1329 0 0 0 0 0 0 0 0 0 0 1518 11 TrueClock * 0 8576 11 TrueClock * 11 TrueClock * 0 0 1330 0 0 0 0 0 0 0 0 0 0 1519 17 TrueClock const * 0 8576 17 TrueClock const * 17 TrueClock const * 0 0 1520 0 0 0 0 0 0 0 0 0 0 1520 15 TrueClock const 0 8832 15 TrueClock const 15 TrueClock const 0 0 1330 0 0 0 0 0 0 0 0 0 0 1521 11 Patchfile * 0 8576 11 Patchfile * 11 Patchfile * 0 0 1332 0 0 0 0 0 0 0 0 0 0 1522 17 Patchfile const * 0 8576 17 Patchfile const * 17 Patchfile const * 0 0 1523 0 0 0 0 0 0 0 0 0 0 1523 15 Patchfile const 0 8832 15 Patchfile const 15 Patchfile const 0 0 1332 0 0 0 0 0 0 0 0 0 0 1524 25 WeakPointerToVoid const * 0 8576 25 WeakPointerToVoid const * 25 WeakPointerToVoid const * 0 0 1525 0 0 0 0 0 0 0 0 0 0 1525 23 WeakPointerToVoid const 0 8832 23 WeakPointerToVoid const 23 WeakPointerToVoid const 0 0 1336 0 0 0 0 0 0 0 0 0 0 1526 17 WindowsRegistry * 0 8576 17 WindowsRegistry * 17 WindowsRegistry * 0 0 1337 0 0 0 0 0 0 0 0 0 0 1527 23 WindowsRegistry const * 0 8576 23 WindowsRegistry const * 23 WindowsRegistry const * 0 0 1528 0 0 0 0 0 0 0 0 0 0 1528 21 WindowsRegistry const 0 8832 21 WindowsRegistry const 21 WindowsRegistry const 0 0 1337 0 0 0 0 0 0 0 0 0 0 0 26 1529 8 tracking 0 2 1277 777 0 0 0 0 0 0 0 21 MemoryUsage::tracking 0 1530 8 counting 0 2 1277 778 0 0 0 0 0 0 0 21 MemoryUsage::counting 0 1531 16 current_cpp_size 0 2 1278 779 0 0 0 0 0 0 0 29 MemoryUsage::current_cpp_size 0 1532 14 total_cpp_size 0 2 1278 780 0 0 0 0 0 0 0 27 MemoryUsage::total_cpp_size 0 1533 22 panda_heap_single_size 0 2 1278 781 0 0 0 0 0 0 0 35 MemoryUsage::panda_heap_single_size 0 1534 21 panda_heap_array_size 0 2 1278 782 0 0 0 0 0 0 0 34 MemoryUsage::panda_heap_array_size 0 1535 19 panda_heap_overhead 0 2 1278 783 0 0 0 0 0 0 0 32 MemoryUsage::panda_heap_overhead 0 1536 15 panda_mmap_size 0 2 1278 784 0 0 0 0 0 0 0 28 MemoryUsage::panda_mmap_size 0 1537 13 external_size 0 2 1278 785 0 0 0 0 0 0 0 26 MemoryUsage::external_size 0 1538 10 total_size 0 2 1278 786 0 0 0 0 0 0 0 23 MemoryUsage::total_size 0 1539 9 ref_count 0 2 1281 802 0 0 0 0 0 0 0 25 ReferenceCount::ref_count 31 // The current reference count. 1540 8 filename 0 2 1290 925 0 0 0 0 0 0 0 22 DatagramSink::filename 0 1541 4 file 0 2 1292 926 0 0 0 0 0 0 0 18 DatagramSink::file 0 1542 8 file_pos 0 2 1296 927 0 0 0 0 0 0 0 22 DatagramSink::file_pos 0 1543 12 magic_number 0 2 1309 1071 0 0 0 0 0 0 0 23 Multifile::magic_number 0 1544 4 name 0 6 1312 1078 1075 0 0 0 0 0 0 13 Namable::name 0 1545 6 mounts 0 66 1328 1185 0 0 0 0 1175 0 0 25 VirtualFileSystem::mounts 0 1546 9 long_time 0 2 1331 1216 0 0 0 0 0 0 0 20 TrueClock::long_time 203 // 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. 1547 10 short_time 0 2 1331 1217 0 0 0 0 0 0 0 21 TrueClock::short_time 206 // 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. 1548 14 short_raw_time 0 2 1331 1218 0 0 0 0 0 0 0 25 TrueClock::short_raw_time 144 // 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. 1549 11 error_count 0 2 1281 1219 0 0 0 0 0 0 0 22 TrueClock::error_count 0 1550 8 progress 0 2 1333 1229 0 0 0 0 0 0 0 19 Patchfile::progress 0 1551 15 allow_multifile 0 6 1277 1231 1230 0 0 0 0 0 0 26 Patchfile::allow_multifile 0 1552 16 footprint_length 0 6 1281 1233 1232 0 0 0 0 0 0 27 Patchfile::footprint_length 0 1553 11 source_hash 0 10 1335 1236 0 1235 0 0 0 0 0 22 Patchfile::source_hash 0 1554 11 result_hash 0 2 1335 1237 0 0 0 0 0 0 0 22 Patchfile::result_hash 0 5 1555 12 get_pointers 0 991 992 33 MemoryUsagePointers::get_pointers 0 1556 18 get_typed_pointers 0 991 993 39 MemoryUsagePointers::get_typed_pointers 0 1557 17 get_subfile_names 0 1049 1054 28 Multifile::get_subfile_names 0 1558 9 get_files 0 1161 1162 26 VirtualFileList::get_files 0 1559 10 get_mounts 0 1175 1176 29 VirtualFileSystem::get_mounts 0