00001 #ifndef IDNodeVector_HEADER_GUARD_ 00002 #define IDNodeVector_HEADER_GUARD_ 00003 /* 00004 * The Apache Software License, Version 1.1 00005 * 00006 * Copyright (c) 2001 The Apache Software Foundation. All rights 00007 * reserved. 00008 * 00009 * Redistribution and use in source and binary forms, with or without 00010 * modification, are permitted provided that the following conditions 00011 * are met: 00012 * 00013 * 1. Redistributions of source code must retain the above copyright 00014 * notice, this list of conditions and the following disclaimer. 00015 * 00016 * 2. Redistributions in binary form must reproduce the above copyright 00017 * notice, this list of conditions and the following disclaimer in 00018 * the documentation and/or other materials provided with the 00019 * distribution. 00020 * 00021 * 3. The end-user documentation included with the redistribution, 00022 * if any, must include the following acknowledgment: 00023 * "This product includes software developed by the 00024 * Apache Software Foundation (http://www.apache.org/)." 00025 * Alternately, this acknowledgment may appear in the software itself, 00026 * if and wherever such third-party acknowledgments normally appear. 00027 * 00028 * 4. The names "Xerces" and "Apache Software Foundation" must 00029 * not be used to endorse or promote products derived from this 00030 * software without prior written permission. For written 00031 * permission, please contact apache\@apache.org. 00032 * 00033 * 5. Products derived from this software may not be called "Apache", 00034 * nor may "Apache" appear in their name, without prior written 00035 * permission of the Apache Software Foundation. 00036 * 00037 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00038 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00039 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00040 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 00041 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00042 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00043 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00044 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00045 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00046 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00047 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00048 * SUCH DAMAGE. 00049 * ==================================================================== 00050 * 00051 * This software consists of voluntary contributions made by many 00052 * individuals on behalf of the Apache Software Foundation, and was 00053 * originally based on software copyright (c) 2001, International 00054 * Business Machines, Inc., http://www.ibm.com . For more information 00055 * on the Apache Software Foundation, please see 00056 * <http://www.apache.org/>. 00057 */ 00058 00059 /* 00060 * $Log: IDNodeVector.hpp,v $ 00061 * Revision 1.1 2002/05/11 20:11:14 bhavani 00062 * CR#CR062582# adding xercesc 1.7 file 00063 * 00064 * Revision 1.1.1.1 2002/02/01 22:21:55 peiyongz 00065 * sane_include 00066 * 00067 * Revision 1.2 2001/05/11 13:25:46 tng 00068 * Copyright update. 00069 * 00070 * Revision 1.1.1.1 2001/04/03 00:14:26 andyh 00071 * IDOM 00072 * 00073 */ 00074 00075 // 00076 // This file is part of the internal implementation of the C++ XML DOM. 00077 // It should NOT be included or used directly by application programs. 00078 // 00079 // Applications should include the file <dom/DOM.hpp> for the entire 00080 // DOM API, or DOM_*.hpp for individual DOM classes, where the class 00081 // name is substituded for the *. 00082 // 00083 00084 00085 #include <xercesc/util/XercesDefs.hpp> 00086 class IDOM_Node; 00087 class IDOM_Document; 00088 00089 00090 class IDNodeVector { 00091 private: 00092 IDOM_Node **data; 00093 unsigned int allocatedSize; 00094 unsigned int nextFreeSlot; 00095 void init(IDOM_Document *doc, unsigned int size); 00096 void checkSpace(); 00097 00098 public: 00099 IDNodeVector(IDOM_Document *doc); 00100 IDNodeVector(IDOM_Document *doc, unsigned int size); 00101 ~IDNodeVector(); 00102 00103 unsigned int size(); 00104 IDOM_Node *elementAt(unsigned int index); 00105 IDOM_Node *lastElement(); 00106 void addElement(IDOM_Node *); 00107 void insertElementAt(IDOM_Node *, unsigned int index); 00108 void setElementAt(IDOM_Node *val, unsigned int index); 00109 void removeElementAt(unsigned int index); 00110 void reset(); 00111 }; 00112 00113 #endif