Return-Path: Delivered-To: apmail-xml-xalan-cvs-archive@xml.apache.org Received: (qmail 93827 invoked by uid 500); 6 Nov 2002 05:08:39 -0000 Mailing-List: contact xalan-cvs-help@xml.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: Delivered-To: mailing list xalan-cvs@xml.apache.org Received: (qmail 93808 invoked from network); 6 Nov 2002 05:08:30 -0000 Date: 6 Nov 2002 05:08:29 -0000 Message-ID: <20021106050829.68847.qmail@icarus.apache.org> From: dbertoni@apache.org To: xml-xalan-cvs@apache.org Subject: cvs commit: xml-xalan/c/src/XSLT XalanElemApplyTemplatesAllocator.cpp XalanElemApplyTemplatesAllocator.hpp XalanElemAttributeAllocator.cpp XalanElemAttributeAllocator.hpp XalanElemAttributeSetAllocator.cpp XalanElemAttributeSetAllocator.hpp XalanElemCallTemplateAllocator.cpp XalanElemCallTemplateAllocator.hpp XalanElemElementAllocator.cpp XalanElemElementAllocator.hpp X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N dbertoni 2002/11/05 21:08:29 Added: c/src/XSLT XalanElemApplyTemplatesAllocator.cpp XalanElemApplyTemplatesAllocator.hpp XalanElemAttributeAllocator.cpp XalanElemAttributeAllocator.hpp XalanElemAttributeSetAllocator.cpp XalanElemAttributeSetAllocator.hpp XalanElemCallTemplateAllocator.cpp XalanElemCallTemplateAllocator.hpp XalanElemElementAllocator.cpp XalanElemElementAllocator.hpp Log: Initial revision. Revision Changes Path 1.1 xml-xalan/c/src/XSLT/XalanElemApplyTemplatesAllocator.cpp Index: XalanElemApplyTemplatesAllocator.cpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ // Class header file. #include "XalanElemApplyTemplatesAllocator.hpp" XalanElemApplyTemplatesAllocator::XalanElemApplyTemplatesAllocator(size_type theBlockCount) : m_allocator(theBlockCount) { } XalanElemApplyTemplatesAllocator::~XalanElemApplyTemplatesAllocator() { } XalanElemApplyTemplatesAllocator::data_type* XalanElemApplyTemplatesAllocator::create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber) { data_type* const theBlock = m_allocator.allocateBlock(); assert(theBlock != 0); data_type* const theResult = new(theBlock) data_type( constructionContext, stylesheetTree, atts, lineNumber, columnNumber); m_allocator.commitAllocation(theBlock); return theResult; } 1.1 xml-xalan/c/src/XSLT/XalanElemApplyTemplatesAllocator.hpp Index: XalanElemApplyTemplatesAllocator.hpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ #if !defined(XALANELEMAPPLYTEMPLATESALLOCATOR_INCLUDE_GUARD_12455133) #define XALANELEMAPPLYTEMPLATESALLOCATOR_INCLUDE_GUARD_12455133 // Base include file. Must be first. #include #include #include class XALAN_XSLT_EXPORT XalanElemApplyTemplatesAllocator { public: typedef ElemApplyTemplates data_type; #if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS) typedef ArenaBlock ArenaBlockType; typedef ArenaAllocator ArenaAllocatorType; #else typedef ArenaAllocator ArenaAllocatorType; #endif typedef ArenaAllocatorType::size_type size_type; /** * Construct an instance that will allocate blocks of the specified size. * * @param theBlockSize The block size. */ XalanElemApplyTemplatesAllocator(size_type theBlockCount); ~XalanElemApplyTemplatesAllocator(); /** * Construct an instance * * @param constructionContext context for construction of object * @param stylesheetTree stylesheet containing element * @param atts list of attributes for element * @param lineNumber line number in document * @param columnNumber column number in document * * @return A pointer to the new instance. */ data_type* create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber); /** * Determine if an object is owned by the allocator... */ bool ownsObject(const data_type* theObject) { return m_allocator.ownsObject(theObject); } /** * Delete all objects from the allocator. */ void reset() { m_allocator.reset(); } /** * Get the number of ArenaBlocks currently allocated. * * @return The number of blocks. */ size_type getBlockCount() const { return m_allocator.getBlockCount(); } /** * Get size of an ArenaBlock, that is, the number * of objects in each block. * * @return The size of the block */ size_type getBlockSize() const { return m_allocator.getBlockSize(); } private: // Not implemented... XalanElemApplyTemplatesAllocator(const XalanElemApplyTemplatesAllocator&); XalanElemApplyTemplatesAllocator& operator=(const XalanElemApplyTemplatesAllocator&); // Data members... ArenaAllocatorType m_allocator; }; #endif // XALANELEMAPPLYTEMPLATESALLOCATOR_INCLUDE_GUARD_12455133 1.1 xml-xalan/c/src/XSLT/XalanElemAttributeAllocator.cpp Index: XalanElemAttributeAllocator.cpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ // Class header file. #include "XalanElemAttributeAllocator.hpp" XalanElemAttributeAllocator::XalanElemAttributeAllocator(size_type theBlockCount) : m_allocator(theBlockCount) { } XalanElemAttributeAllocator::~XalanElemAttributeAllocator() { } XalanElemAttributeAllocator::data_type* XalanElemAttributeAllocator::create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber) { data_type* const theBlock = m_allocator.allocateBlock(); assert(theBlock != 0); data_type* const theResult = new(theBlock) data_type( constructionContext, stylesheetTree, atts, lineNumber, columnNumber); m_allocator.commitAllocation(theBlock); return theResult; } 1.1 xml-xalan/c/src/XSLT/XalanElemAttributeAllocator.hpp Index: XalanElemAttributeAllocator.hpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ #if !defined(XALANELEMATTRIBUTEALLOCATOR_INCLUDE_GUARD_12455133) #define XALANELEMATTRIBUTEALLOCATOR_INCLUDE_GUARD_12455133 // Base include file. Must be first. #include #include #include class XALAN_XSLT_EXPORT XalanElemAttributeAllocator { public: typedef ElemAttribute data_type; #if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS) typedef ArenaBlock ArenaBlockType; typedef ArenaAllocator ArenaAllocatorType; #else typedef ArenaAllocator ArenaAllocatorType; #endif typedef ArenaAllocatorType::size_type size_type; /** * Construct an instance that will allocate blocks of the specified size. * * @param theBlockSize The block size. */ XalanElemAttributeAllocator(size_type theBlockCount); ~XalanElemAttributeAllocator(); /** * Construct an instance * * @param constructionContext context for construction of object * @param stylesheetTree stylesheet containing element * @param atts list of attributes for element * @param lineNumber line number in document * @param columnNumber column number in document * * @return A pointer to the new instance. */ data_type* create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber); /** * Determine if an object is owned by the allocator... */ bool ownsObject(const data_type* theObject) { return m_allocator.ownsObject(theObject); } /** * Delete all objects from the allocator. */ void reset() { m_allocator.reset(); } /** * Get the number of ArenaBlocks currently allocated. * * @return The number of blocks. */ size_type getBlockCount() const { return m_allocator.getBlockCount(); } /** * Get size of an ArenaBlock, that is, the number * of objects in each block. * * @return The size of the block */ size_type getBlockSize() const { return m_allocator.getBlockSize(); } private: // Not implemented... XalanElemAttributeAllocator(const XalanElemAttributeAllocator&); XalanElemAttributeAllocator& operator=(const XalanElemAttributeAllocator&); // Data members... ArenaAllocatorType m_allocator; }; #endif // XALANELEMATTRIBUTEALLOCATOR_INCLUDE_GUARD_12455133 1.1 xml-xalan/c/src/XSLT/XalanElemAttributeSetAllocator.cpp Index: XalanElemAttributeSetAllocator.cpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ // Class header file. #include "XalanElemAttributeSetAllocator.hpp" XalanElemAttributeSetAllocator::XalanElemAttributeSetAllocator(size_type theBlockCount) : m_allocator(theBlockCount) { } XalanElemAttributeSetAllocator::~XalanElemAttributeSetAllocator() { } XalanElemAttributeSetAllocator::data_type* XalanElemAttributeSetAllocator::create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber) { data_type* const theBlock = m_allocator.allocateBlock(); assert(theBlock != 0); data_type* const theResult = new(theBlock) data_type( constructionContext, stylesheetTree, atts, lineNumber, columnNumber); m_allocator.commitAllocation(theBlock); return theResult; } 1.1 xml-xalan/c/src/XSLT/XalanElemAttributeSetAllocator.hpp Index: XalanElemAttributeSetAllocator.hpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ #if !defined(XALANELEMATTRIBUTESETALLOCATOR_INCLUDE_GUARD_12455133) #define XALANELEMATTRIBUTESETALLOCATOR_INCLUDE_GUARD_12455133 // Base include file. Must be first. #include #include #include class XALAN_XSLT_EXPORT XalanElemAttributeSetAllocator { public: typedef ElemAttributeSet data_type; #if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS) typedef ArenaBlock ArenaBlockType; typedef ArenaAllocator ArenaAllocatorType; #else typedef ArenaAllocator ArenaAllocatorType; #endif typedef ArenaAllocatorType::size_type size_type; /** * Construct an instance that will allocate blocks of the specified size. * * @param theBlockSize The block size. */ XalanElemAttributeSetAllocator(size_type theBlockCount); ~XalanElemAttributeSetAllocator(); /** * Construct an instance * * @param constructionContext context for construction of object * @param stylesheetTree stylesheet containing element * @param atts list of attributes for element * @param lineNumber line number in document * @param columnNumber column number in document * * @return A pointer to the new instance. */ data_type* create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber); /** * Determine if an object is owned by the allocator... */ bool ownsObject(const data_type* theObject) { return m_allocator.ownsObject(theObject); } /** * Delete all objects from the allocator. */ void reset() { m_allocator.reset(); } /** * Get the number of ArenaBlocks currently allocated. * * @return The number of blocks. */ size_type getBlockCount() const { return m_allocator.getBlockCount(); } /** * Get size of an ArenaBlock, that is, the number * of objects in each block. * * @return The size of the block */ size_type getBlockSize() const { return m_allocator.getBlockSize(); } private: // Not implemented... XalanElemAttributeSetAllocator(const XalanElemAttributeSetAllocator&); XalanElemAttributeSetAllocator& operator=(const XalanElemAttributeSetAllocator&); // Data members... ArenaAllocatorType m_allocator; }; #endif // XALANELEMATTRIBUTESETALLOCATOR_INCLUDE_GUARD_12455133 1.1 xml-xalan/c/src/XSLT/XalanElemCallTemplateAllocator.cpp Index: XalanElemCallTemplateAllocator.cpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ // Class header file. #include "XalanElemCallTemplateAllocator.hpp" XalanElemCallTemplateAllocator::XalanElemCallTemplateAllocator(size_type theBlockCount) : m_allocator(theBlockCount) { } XalanElemCallTemplateAllocator::~XalanElemCallTemplateAllocator() { } XalanElemCallTemplateAllocator::data_type* XalanElemCallTemplateAllocator::create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber) { data_type* const theBlock = m_allocator.allocateBlock(); assert(theBlock != 0); data_type* const theResult = new(theBlock) data_type( constructionContext, stylesheetTree, atts, lineNumber, columnNumber); m_allocator.commitAllocation(theBlock); return theResult; } 1.1 xml-xalan/c/src/XSLT/XalanElemCallTemplateAllocator.hpp Index: XalanElemCallTemplateAllocator.hpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ #if !defined(XALANELEMCALLTEMPLATEALLOCATOR_INCLUDE_GUARD_12455133) #define XALANELEMCALLTEMPLATEALLOCATOR_INCLUDE_GUARD_12455133 // Base include file. Must be first. #include #include #include class XALAN_XSLT_EXPORT XalanElemCallTemplateAllocator { public: typedef ElemCallTemplate data_type; #if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS) typedef ArenaBlock ArenaBlockType; typedef ArenaAllocator ArenaAllocatorType; #else typedef ArenaAllocator ArenaAllocatorType; #endif typedef ArenaAllocatorType::size_type size_type; /** * Construct an instance that will allocate blocks of the specified size. * * @param theBlockSize The block size. */ XalanElemCallTemplateAllocator(size_type theBlockCount); ~XalanElemCallTemplateAllocator(); /** * Construct an instance * * @param constructionContext context for construction of object * @param stylesheetTree stylesheet containing element * @param atts list of attributes for element * @param lineNumber line number in document * @param columnNumber column number in document * * @return A pointer to the new instance. */ data_type* create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber); /** * Determine if an object is owned by the allocator... */ bool ownsObject(const data_type* theObject) { return m_allocator.ownsObject(theObject); } /** * Delete all objects from the allocator. */ void reset() { m_allocator.reset(); } /** * Get the number of ArenaBlocks currently allocated. * * @return The number of blocks. */ size_type getBlockCount() const { return m_allocator.getBlockCount(); } /** * Get size of an ArenaBlock, that is, the number * of objects in each block. * * @return The size of the block */ size_type getBlockSize() const { return m_allocator.getBlockSize(); } private: // Not implemented... XalanElemCallTemplateAllocator(const XalanElemCallTemplateAllocator&); XalanElemCallTemplateAllocator& operator=(const XalanElemCallTemplateAllocator&); // Data members... ArenaAllocatorType m_allocator; }; #endif // XALANELEMCALLTEMPLATEALLOCATOR_INCLUDE_GUARD_12455133 1.1 xml-xalan/c/src/XSLT/XalanElemElementAllocator.cpp Index: XalanElemElementAllocator.cpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ // Class header file. #include "XalanElemElementAllocator.hpp" XalanElemElementAllocator::XalanElemElementAllocator(size_type theBlockCount) : m_allocator(theBlockCount) { } XalanElemElementAllocator::~XalanElemElementAllocator() { } XalanElemElementAllocator::data_type* XalanElemElementAllocator::create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber) { data_type* const theBlock = m_allocator.allocateBlock(); assert(theBlock != 0); data_type* const theResult = new(theBlock) data_type( constructionContext, stylesheetTree, atts, lineNumber, columnNumber); m_allocator.commitAllocation(theBlock); return theResult; } 1.1 xml-xalan/c/src/XSLT/XalanElemElementAllocator.hpp Index: XalanElemElementAllocator.hpp =================================================================== /* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc., http://www.ibm.com. For more * information on the Apache Software Foundation, please see * . */ #if !defined(XALANELEMELEMENTALLOCATOR_INCLUDE_GUARD_12455133) #define XALANELEMELEMENTALLOCATOR_INCLUDE_GUARD_12455133 // Base include file. Must be first. #include #include #include class XALAN_XSLT_EXPORT XalanElemElementAllocator { public: typedef ElemElement data_type; #if defined(XALAN_NO_DEFAULT_TEMPLATE_ARGUMENTS) typedef ArenaBlock ArenaBlockType; typedef ArenaAllocator ArenaAllocatorType; #else typedef ArenaAllocator ArenaAllocatorType; #endif typedef ArenaAllocatorType::size_type size_type; /** * Construct an instance that will allocate blocks of the specified size. * * @param theBlockSize The block size. */ XalanElemElementAllocator(size_type theBlockCount); ~XalanElemElementAllocator(); /** * Construct an instance * * @param constructionContext context for construction of object * @param stylesheetTree stylesheet containing element * @param atts list of attributes for element * @param lineNumber line number in document * @param columnNumber column number in document * * @return A pointer to the new instance. */ data_type* create( StylesheetConstructionContext& constructionContext, Stylesheet& stylesheetTree, const AttributeList& atts, int lineNumber, int columnNumber); /** * Determine if an object is owned by the allocator... */ bool ownsObject(const data_type* theObject) { return m_allocator.ownsObject(theObject); } /** * Delete all objects from the allocator. */ void reset() { m_allocator.reset(); } /** * Get the number of ArenaBlocks currently allocated. * * @return The number of blocks. */ size_type getBlockCount() const { return m_allocator.getBlockCount(); } /** * Get size of an ArenaBlock, that is, the number * of objects in each block. * * @return The size of the block */ size_type getBlockSize() const { return m_allocator.getBlockSize(); } private: // Not implemented... XalanElemElementAllocator(const XalanElemElementAllocator&); XalanElemElementAllocator& operator=(const XalanElemElementAllocator&); // Data members... ArenaAllocatorType m_allocator; }; #endif // XALANELEMELEMENTALLOCATOR_INCLUDE_GUARD_12455133 --------------------------------------------------------------------- To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org For additional commands, e-mail: xalan-cvs-help@xml.apache.org