historical/toontown-classic.git/panda/pandac/input/libp3express.in
2024-01-16 11:20:27 -06:00

7965 lines
320 KiB
Text

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 &copy);
inline ConstPointerToArray< double >::ConstPointerToArray(ConstPointerToArray< double > const &copy);
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 &copy);
inline ConstPointerToArray< float >::ConstPointerToArray(ConstPointerToArray< float > const &copy);
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 &copy);
inline ConstPointerToArray< int >::ConstPointerToArray(ConstPointerToArray< int > const &copy);
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 &copy);
inline ConstPointerToArray< unsigned char >::ConstPointerToArray(ConstPointerToArray< unsigned char > const &copy);
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 &copy);
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 &copy);
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 &copy);
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 &copy);
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 &copy) = 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 &copy) = 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 <out>.
*/
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 <out>.
*/
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 <out>.
*/
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 <out>.
*/
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 &copy);
959 10 operator = 0 4 1300 19 HashVal::operator = 0 1 311 0
53
inline void HashVal::operator =(HashVal const &copy);
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 &copy);
1091 10 operator = 0 4 1314 23 SubfileInfo::operator = 0 1 453 0
61
inline void SubfileInfo::operator =(SubfileInfo const &copy);
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 &copy);
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 &copy);
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 <out>.
*/ 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 <out>.
*/ 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 <out>.
*/ 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 <out>.
*/ 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<T>.
*/
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() {
* <<<BaseClassOne>>>::init_type();
* <<<BaseClassTwo>>>::init_type();
* <<<BaseClassN>>>::init_type();
* register_type(_type_handle, "<<<ThisClassStringName>>>",
* <<<BaseClassOne>>>::get_class_type(),
* <<<BaseClassTwo>>>::get_class_type(),
* <<<BaseClassN>>>::get_class_type());
* }
* virtual TypeHandle get_type() const {
* return get_class_type();
* }
* virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
*
* private:
* static TypeHandle _type_handle;
* @endcode
*
* @par In the class .cxx file:
* @code
* TypeHandle <<<ThisClassStringName>>>::_type_handle;
* @endcode
*
* @par In the class config_<<<PackageName>>>.cxx file:
* @code
* ConfigureFn(config_<<<PackageName>>>) {
* <<<ClassOne>>>::init_type();
* <<<ClassTwo>>>::init_type();
* <<<ClassN>>>::init_type();
* }
* @endcode
*/
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