File indexing completed on 2025-01-30 10:27:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODEVECTOR_HPP)
0023 #define XERCESC_INCLUDE_GUARD_DOMNODEVECTOR_HPP
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #include <xercesc/util/XercesDefs.hpp>
0035
0036 XERCES_CPP_NAMESPACE_BEGIN
0037
0038
0039 class DOMNode;
0040 class DOMDocument;
0041
0042
0043 class DOMNodeVector {
0044 private:
0045 DOMNode **data;
0046 XMLSize_t allocatedSize;
0047 XMLSize_t nextFreeSlot;
0048 void init(DOMDocument *doc, XMLSize_t size);
0049 void checkSpace();
0050
0051
0052 DOMNodeVector ( const DOMNodeVector& toCopy);
0053 DOMNodeVector& operator= (const DOMNodeVector& other);
0054
0055 public:
0056 DOMNodeVector(DOMDocument *doc);
0057 DOMNodeVector(DOMDocument *doc, XMLSize_t size);
0058 ~DOMNodeVector();
0059
0060 XMLSize_t size();
0061 DOMNode* elementAt(XMLSize_t index);
0062 DOMNode* lastElement();
0063 void addElement(DOMNode *);
0064 void insertElementAt(DOMNode *, XMLSize_t index);
0065 void setElementAt(DOMNode *val, XMLSize_t index);
0066 void removeElementAt(XMLSize_t index);
0067 void reset();
0068 };
0069
0070 inline DOMNode *DOMNodeVector::elementAt(XMLSize_t index) {
0071 if (index >= nextFreeSlot)
0072 return 0;
0073 return data[index];
0074 }
0075
0076 inline DOMNode *DOMNodeVector::lastElement() {
0077 if (nextFreeSlot == 0)
0078 return 0;
0079 return data[nextFreeSlot-1];
0080 }
0081
0082 inline XMLSize_t DOMNodeVector::size() {
0083 return nextFreeSlot;
0084 }
0085
0086 XERCES_CPP_NAMESPACE_END
0087
0088 #endif