[GME-commit] GMESRC/GME/Include/xalanc/ICUBridge ICUFormatNumberFunctor.hpp, NONE, 1.1 ICUBridge.hpp, 1.1.1.1, 1.2 ICUBridgeCleanup.hpp, 1.1.1.1, 1.2 ICUBridgeCollationCompareFunctor.hpp, 1.1.1.1, 1.2 ICUBridgeCollationCompareFunctorImpl.hpp, 1.1.1.1, 1.2 ICUBridgeDefinitions.hpp, 1.1.1.1, 1.2 ICUXalanNumberFormatFactory.hpp, 1.1.1.1, 1.2 ICUXalanNumberFormatProxy.hpp, 1.1.1.1, 1.2

Log messages of CVS commits gme-commit at list.isis.vanderbilt.edu
Tue Feb 19 14:14:05 CST 2008


Update of /project/gme-repository/GMESRC/GME/Include/xalanc/ICUBridge
In directory escher:/tmp/cvs-serv25974/ICUBridge

Modified Files:
	ICUBridge.hpp ICUBridgeCleanup.hpp 
	ICUBridgeCollationCompareFunctor.hpp 
	ICUBridgeCollationCompareFunctorImpl.hpp 
	ICUBridgeDefinitions.hpp ICUXalanNumberFormatFactory.hpp 
	ICUXalanNumberFormatProxy.hpp 
Added Files:
	ICUFormatNumberFunctor.hpp 
Log Message:
Xalan1.10 include files.


CVS User: Zoltan Molnar, ISIS (zolmol)

--- NEW FILE: ICUFormatNumberFunctor.hpp ---
/*
 * Copyright 1999-2004 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#if !defined(FUNCTIONICUFORMATNUMBERFUNCTOR_HEADER_GUARD_1357924680)
#define FUNCTIONICUFORMATNUMBERFUNCTOR_HEADER_GUARD_1357924680



// Base header file.  Must be first.
#include <xalanc/ICUBridge/ICUBridgeDefinitions.hpp>



#include <xalanc/Include/XalanMemMgrAutoPtr.hpp>



#include <xalanc/PlatformSupport/XalanDecimalFormatSymbols.hpp>



#include <xalanc/XSLT/StylesheetExecutionContextDefault.hpp>



#include <xalanc/XPath/XPathExecutionContext.hpp>



#include <unicode/decimfmt.h>




XALAN_CPP_NAMESPACE_BEGIN

typedef StylesheetExecutionContextDefault::FormatNumberFunctor FormatNumberFunctor;

#if defined(XALAN_HAS_CPP_NAMESPACE)
    typedef U_ICU_NAMESPACE::DecimalFormat  DecimalFormatType;
#else
    typedef DecimalFormat                   DecimalFormatType;
#endif

struct DecimalFormatCacheStruct
{
    DecimalFormatCacheStruct(
        MemoryManagerType&                  theManager,
        const XalanDecimalFormatSymbols&    theDFS,
        DecimalFormatType*                  theFormatter) :

        m_DFS(theDFS, theManager),
        m_formatter(theFormatter)
    {
    }

    DecimalFormatCacheStruct(MemoryManagerType&     theManager) :
        m_DFS(theManager),
        m_formatter(0)
    {
    }

    DecimalFormatCacheStruct(
                const DecimalFormatCacheStruct&     other,
                MemoryManagerType&                  theManager) :
        m_DFS(other.m_DFS, theManager),
        m_formatter(other.m_formatter)
    {
    }

#if defined(XALAN_NO_SELECTIVE_TEMPLATE_INSTANTIATION)
    bool
    operator<(const DecimalFormatCacheStruct&  theRHS) const
    {
        return this < &theRHS;
    }

    bool
    operator==(const DecimalFormatCacheStruct&  theRHS) const
    {
        return this == &theRHS;
    }
#endif

    XalanDecimalFormatSymbols   m_DFS;

    DecimalFormatType * m_formatter;

    class DecimalFormatDeleteFunctor
    {
    public:

        DecimalFormatDeleteFunctor(MemoryManager&   theManager) :
            m_memoryManager(theManager)
        {
        }

        void
        operator()(DecimalFormatCacheStruct&    theStruct) const
        {
            assert(theStruct.m_formatter != 0);

            XalanDestroy(
                m_memoryManager,
                *theStruct.m_formatter);
        }

    private:

        // Not implemented...
        DecimalFormatDeleteFunctor&
        operator=(const DecimalFormatDeleteFunctor&);

        // Data members.
        MemoryManager&  m_memoryManager;
    };

    struct DecimalFormatFindFunctor
    {
        DecimalFormatFindFunctor(const XalanDecimalFormatSymbols*   theDFS) :
            m_DFS(theDFS)
            {
            }

        bool
        operator()(DecimalFormatCacheStruct&    theStruct) const
        {
            return theStruct.m_DFS == (*m_DFS);
        }

        const XalanDecimalFormatSymbols * const m_DFS;
    };

private:

    DecimalFormatCacheStruct();
    DecimalFormatCacheStruct(const DecimalFormatCacheStruct& other);
};


XALAN_USES_MEMORY_MANAGER(DecimalFormatCacheStruct)

// Class that implements the XSLT function format-number using the ICU.
//
class XALAN_ICUBRIDGE_EXPORT ICUFormatNumberFunctor : public FormatNumberFunctor
{
public:

    ICUFormatNumberFunctor(MemoryManagerType& theManager);

    static ICUFormatNumberFunctor*
    create(MemoryManagerType& theManager);

    virtual
    ~ICUFormatNumberFunctor();

    virtual void
    operator() (
        XPathExecutionContext&              executionContext,
        double                              theNumber,
        const XalanDOMString&               thePattern,
        const XalanDecimalFormatSymbols*    theDFS,
        XalanDOMString&                     theResult,
        const XalanNode*                    context = 0,
        const LocatorType*                  locator = 0) const;
    

    class UnlocalizePatternFunctor
    {
    public:
        UnlocalizePatternFunctor(const XalanDecimalFormatSymbols&   theDFS):
            m_DFS(theDFS)
        {
        }

        XalanDOMString&
        operator()(
                const XalanDOMString&   thePattern,
                XalanDOMString&         theResult,
                MemoryManager&          theManager) const;

    private:

        const XalanDecimalFormatSymbols&    m_DFS;
    };

    typedef XalanList<DecimalFormatCacheStruct>         DecimalFormatCacheListType;

private:

    DecimalFormatType*
    getCachedDecimalFormat(const XalanDecimalFormatSymbols &theDFS) const;

    bool
    doFormat(   
        double                              theNumber,
        const XalanDOMString&               thePattern,
        XalanDOMString&                     theResult,
        const XalanDecimalFormatSymbols*    theDFS = 0) const;

    bool
    doICUFormat(
        double                              theNumber,
        const XalanDOMString&               thePattern,
        XalanDOMString&                     theResult,
        DecimalFormatType*                  theFormatter = 0) const;

    void
    cacheDecimalFormat(
        DecimalFormatType*                  theFormatter,
        const XalanDecimalFormatSymbols&    theDFS) const;

    static DecimalFormat*
    createDecimalFormat(
        const XalanDecimalFormatSymbols&    theXalanDFS,
        MemoryManager&                      theManager);

    static DecimalFormat*
    createDecimalFormat(MemoryManager&  theManager)
    {
        const XalanDecimalFormatSymbols     theDFS(theManager);

        return createDecimalFormat(theDFS, theManager);
    }

    enum { eCacheMax = 10u };

private:

    // These are not implemented...
    ICUFormatNumberFunctor&
    operator=(const ICUFormatNumberFunctor&);

    bool
    operator==(const ICUFormatNumberFunctor&) const;

    typedef XalanMemMgrAutoPtr<DecimalFormatType>   DFAutoPtrType;

    // Data members...
    mutable DecimalFormatCacheListType  m_decimalFormatCache;

    const DFAutoPtrType                 m_defaultDecimalFormat;

    MemoryManagerType&                  m_memoryManager;
};



XALAN_CPP_NAMESPACE_END



#endif  // FUNCTIONICUFORMATNUMBERFUNCTOR_HEADER_GUARD_1357924680

Index: ICUXalanNumberFormatFactory.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xalanc/ICUBridge/ICUXalanNumberFormatFactory.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ICUXalanNumberFormatFactory.hpp	8 Apr 2004 07:56:03 -0000	1.1.1.1
--- ICUXalanNumberFormatFactory.hpp	19 Feb 2008 20:14:02 -0000	1.2
***************
*** 1,57 ****
  /*
!  * The Apache Software License, Version 1.1
!  *
!  *
!  * Copyright (c) 1999-2004 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 at 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
!  * <http://www.apache.org/>.
   */
  #if !defined(ICUXALANNUMBERFORMATFACTORY_HEADER_GUARD_1357924680)
--- 1,16 ----
  /*
!  * Copyright 1999-2004 The Apache Software Foundation.
   *
!  * Licensed under the Apache License, Version 2.0 (the "License");
!  * you may not use this file except in compliance with the License.
!  * You may obtain a copy of the License at
   *
!  *     http://www.apache.org/licenses/LICENSE-2.0
   *
!  * Unless required by applicable law or agreed to in writing, software
!  * distributed under the License is distributed on an "AS IS" BASIS,
!  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
!  * See the License for the specific language governing permissions and
!  * limitations under the License.
   */
  #if !defined(ICUXALANNUMBERFORMATFACTORY_HEADER_GUARD_1357924680)
***************
*** 79,83 ****
  public:
  
! 	ICUXalanNumberFormatFactory();
  
  	virtual
--- 38,42 ----
  public:
  
! 	ICUXalanNumberFormatFactory(MemoryManagerType& theManager);
  
  	virtual
***************
*** 86,89 ****
--- 45,50 ----
  	virtual XalanNumberFormat*
  	create();
+ private:
+     MemoryManagerType& m_memoryManager;
  };
  

Index: ICUBridgeCollationCompareFunctor.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xalanc/ICUBridge/ICUBridgeCollationCompareFunctor.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ICUBridgeCollationCompareFunctor.hpp	8 Apr 2004 07:56:03 -0000	1.1.1.1
--- ICUBridgeCollationCompareFunctor.hpp	19 Feb 2008 20:14:02 -0000	1.2
***************
*** 1,57 ****
  /*
!  * The Apache Software License, Version 1.1
!  *
!  *
!  * Copyright (c) 1999-2004 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 at 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
!  * <http://www.apache.org/>.
   */
  
--- 1,16 ----
  /*
!  * Copyright 1999-2004 The Apache Software Foundation.
   *
!  * Licensed under the Apache License, Version 2.0 (the "License");
!  * you may not use this file except in compliance with the License.
!  * You may obtain a copy of the License at
   *
!  *     http://www.apache.org/licenses/LICENSE-2.0
   *
!  * Unless required by applicable law or agreed to in writing, software
!  * distributed under the License is distributed on an "AS IS" BASIS,
!  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
!  * See the License for the specific language governing permissions and
!  * limitations under the License.
   */
  
***************
*** 86,90 ****
  	 * @param fCacheCollators If true, the instance will cache collators.  This is not thread-safe, so each thread must have its own instance.
  	 */
! 	ICUBridgeCollationCompareFunctor(bool	fCacheCollators = false);
  
  	virtual
--- 45,53 ----
  	 * @param fCacheCollators If true, the instance will cache collators.  This is not thread-safe, so each thread must have its own instance.
  	 */
! 	ICUBridgeCollationCompareFunctor(MemoryManagerType& theManager, 
!                                                 bool	fCacheCollators = false);
! 
! 	static ICUBridgeCollationCompareFunctor*
!     create(MemoryManagerType& theManager, bool	fCacheCollators = false);
  
  	virtual

Index: ICUBridgeCleanup.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xalanc/ICUBridge/ICUBridgeCleanup.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ICUBridgeCleanup.hpp	8 Apr 2004 07:56:03 -0000	1.1.1.1
--- ICUBridgeCleanup.hpp	19 Feb 2008 20:14:02 -0000	1.2
***************
*** 1,57 ****
  /*
!  * The Apache Software License, Version 1.1
!  *
!  *
!  * Copyright (c) 1999-2004 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 at 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
!  * <http://www.apache.org/>.
   */
  
--- 1,16 ----
  /*
!  * Copyright 1999-2004 The Apache Software Foundation.
   *
!  * Licensed under the Apache License, Version 2.0 (the "License");
!  * you may not use this file except in compliance with the License.
!  * You may obtain a copy of the License at
   *
!  *     http://www.apache.org/licenses/LICENSE-2.0
   *
!  * Unless required by applicable law or agreed to in writing, software
!  * distributed under the License is distributed on an "AS IS" BASIS,
!  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
!  * See the License for the specific language governing permissions and
!  * limitations under the License.
   */
  
***************
*** 63,67 ****
  #include <xalanc/ICUBridge/ICUBridgeDefinitions.hpp>
  
! 
  
  XALAN_CPP_NAMESPACE_BEGIN
--- 22,26 ----
  #include <xalanc/ICUBridge/ICUBridgeDefinitions.hpp>
  
! #include <xalanc/Include/XalanMemoryManagement.hpp>
  
  XALAN_CPP_NAMESPACE_BEGIN
***************
*** 75,78 ****
--- 34,40 ----
  	static void
  	cleanup();
+ 
+ 	static void
+ 	startup(MemoryManagerType&  theManager);
  };
  

Index: ICUXalanNumberFormatProxy.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xalanc/ICUBridge/ICUXalanNumberFormatProxy.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ICUXalanNumberFormatProxy.hpp	8 Apr 2004 07:56:03 -0000	1.1.1.1
--- ICUXalanNumberFormatProxy.hpp	19 Feb 2008 20:14:02 -0000	1.2
***************
*** 1,57 ****
  /*
!  * The Apache Software License, Version 1.1
!  *
!  *
!  * Copyright (c) 1999-2004 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 at 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
!  * <http://www.apache.org/>.
   */
  #if !defined(ICUXALANNUMBERFORMATPROXY_HEADER_GUARD_1357924680)
--- 1,16 ----
  /*
!  * Copyright 1999-2004 The Apache Software Foundation.
   *
!  * Licensed under the Apache License, Version 2.0 (the "License");
!  * you may not use this file except in compliance with the License.
!  * You may obtain a copy of the License at
   *
!  *     http://www.apache.org/licenses/LICENSE-2.0
   *
!  * Unless required by applicable law or agreed to in writing, software
!  * distributed under the License is distributed on an "AS IS" BASIS,
!  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
!  * See the License for the specific language governing permissions and
!  * limitations under the License.
   */
  #if !defined(ICUXALANNUMBERFORMATPROXY_HEADER_GUARD_1357924680)
***************
*** 84,131 ****
  
  	explicit
! 	ICUXalanNumberFormatProxy();
  
  	virtual
  	~ICUXalanNumberFormatProxy();
  
! 	virtual XalanDOMString
! 	format(double	theValue);
  
- 	virtual void
- 	format(
- 			double				theValue,
- 			XalanDOMString&		theResult);
  
! 	virtual XalanDOMString
! 	format(int	theValue);
  
- 	virtual void
- 	format(
- 			int					theValue,
- 			XalanDOMString&		theResult);
  
! 	virtual XalanDOMString
! 	format(unsigned int		theValue);
  
- 	virtual void
- 	format(
- 			unsigned int		theValue,
- 			XalanDOMString&		theResult);
  
! 	virtual XalanDOMString
! 	format(long		theValue);
  
- 	virtual void
- 	format(
- 			long				theValue,
- 			XalanDOMString&		theResult);
  
! 	virtual XalanDOMString
! 	format(unsigned long	theValue);
  
- 	virtual void
- 	format(
- 			unsigned long		theValue,
- 			XalanDOMString&		theResult);
  
  	virtual bool
--- 43,72 ----
  
  	explicit
! 	ICUXalanNumberFormatProxy(MemoryManagerType& theManager);
  
  	virtual
  	~ICUXalanNumberFormatProxy();
  
! 	virtual XalanDOMString&
! 	format(double	        theValue,
!             XalanDOMString& theResult);
  
  
! 	virtual XalanDOMString&
! 	format(int	            theValue,
!             XalanDOMString& theResult);
  
  
! 	virtual XalanDOMString&
! 	format(unsigned int		theValue, XalanDOMString& theResult);
  
  
! 	virtual XalanDOMString&
! 	format(long		theValue, XalanDOMString& theResult);
  
  
! 	virtual XalanDOMString&
! 	format(unsigned long	theValue, XalanDOMString& theResult);
  
  
  	virtual bool
***************
*** 144,151 ****
  
  #if defined(XALAN_HAS_CPP_NAMESPACE)
! 	U_ICU_NAMESPACE::DecimalFormat*		m_decimalFormat;
  #else
! 	DecimalFormat*						m_decimalFormat;
  #endif
  };
  
--- 85,95 ----
  
  #if defined(XALAN_HAS_CPP_NAMESPACE)
! 	typedef U_ICU_NAMESPACE::DecimalFormat		DecimalFormatType;
  #else
! 	typedef DecimalFormat*						DecimalFormatType;
  #endif
+ 
+ 	DecimalFormatType*		m_decimalFormat;
+ 
  };
  

Index: ICUBridge.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xalanc/ICUBridge/ICUBridge.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ICUBridge.hpp	8 Apr 2004 07:56:03 -0000	1.1.1.1
--- ICUBridge.hpp	19 Feb 2008 20:14:02 -0000	1.2
***************
*** 1,57 ****
  /*
!  * The Apache Software License, Version 1.1
!  *
!  *
!  * Copyright (c) 1999-2004 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 at 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
!  * <http://www.apache.org/>.
   */
  
--- 1,16 ----
  /*
!  * Copyright 1999-2004 The Apache Software Foundation.
   *
!  * Licensed under the Apache License, Version 2.0 (the "License");
!  * you may not use this file except in compliance with the License.
!  * You may obtain a copy of the License at
   *
!  *     http://www.apache.org/licenses/LICENSE-2.0
   *
!  * Unless required by applicable law or agreed to in writing, software
!  * distributed under the License is distributed on an "AS IS" BASIS,
!  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
!  * See the License for the specific language governing permissions and
!  * limitations under the License.
   */
  
***************
*** 77,85 ****
  
  
- class Function;
- class XalanDecimalFormatSymbols;
- 
- 
- 
  class XALAN_ICUBRIDGE_EXPORT ICUBridge
  {
--- 36,39 ----
***************
*** 87,114 ****
  
  	static const UnicodeString
! 	XalanDOMCharStringToUnicodeString(const XalanDOMChar*	theString);
  
  	static const UnicodeString
  	XalanDOMCharStringToUnicodeString(
  			const XalanDOMChar*			theString,
  			XalanDOMString::size_type	theLHSLength);
  
  	static const UnicodeString
! 	XalanDOMStringToUnicodeString(const XalanDOMString&		theString);
! 
! 	static const XalanDOMString
! 	UnicodeStringToXalanDOMString(const UnicodeString&	theString);
  
! 	static void
  	UnicodeStringToXalanDOMString(
  			const UnicodeString&	theString,
  			XalanDOMString&			theResult);
- 
- 	static unsigned long
- 	FormatNumber(
- 			const XalanDOMString&				thePattern,
- 			double								theNumber,
- 			const XalanDecimalFormatSymbols*	theXalanDFS,
- 			XalanDOMString&						theResult);
  };
  
--- 41,61 ----
  
  	static const UnicodeString
! 	XalanDOMCharStringToUnicodeString(MemoryManagerType&    theManager, 
!                                         const XalanDOMChar*	theString);
  
  	static const UnicodeString
  	XalanDOMCharStringToUnicodeString(
+             MemoryManagerType&          theManager,
  			const XalanDOMChar*			theString,
  			XalanDOMString::size_type	theLHSLength);
  
  	static const UnicodeString
! 	XalanDOMStringToUnicodeString(MemoryManagerType&            theManager, 
!                                     const XalanDOMString&		theString);
  
! 	static XalanDOMString&
  	UnicodeStringToXalanDOMString(
  			const UnicodeString&	theString,
  			XalanDOMString&			theResult);
  };
  

Index: ICUBridgeDefinitions.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xalanc/ICUBridge/ICUBridgeDefinitions.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ICUBridgeDefinitions.hpp	8 Apr 2004 07:56:03 -0000	1.1.1.1
--- ICUBridgeDefinitions.hpp	19 Feb 2008 20:14:02 -0000	1.2
***************
*** 1,57 ****
  /*
!  * The Apache Software License, Version 1.1
!  *
!  *
!  * Copyright (c) 1999-2004 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 at 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
!  * <http://www.apache.org/>.
   */
  #if !defined(ICUBRIDGEDEFINITIONS_HEADER_GUARD_1357924680)
--- 1,16 ----
  /*
!  * Copyright 1999-2004 The Apache Software Foundation.
   *
!  * Licensed under the Apache License, Version 2.0 (the "License");
!  * you may not use this file except in compliance with the License.
!  * You may obtain a copy of the License at
   *
!  *     http://www.apache.org/licenses/LICENSE-2.0
   *
!  * Unless required by applicable law or agreed to in writing, software
!  * distributed under the License is distributed on an "AS IS" BASIS,
!  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
!  * See the License for the specific language governing permissions and
!  * limitations under the License.
   */
  #if !defined(ICUBRIDGEDEFINITIONS_HEADER_GUARD_1357924680)

Index: ICUBridgeCollationCompareFunctorImpl.hpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Include/xalanc/ICUBridge/ICUBridgeCollationCompareFunctorImpl.hpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ICUBridgeCollationCompareFunctorImpl.hpp	8 Apr 2004 07:56:03 -0000	1.1.1.1
--- ICUBridgeCollationCompareFunctorImpl.hpp	19 Feb 2008 20:14:02 -0000	1.2
***************
*** 1,57 ****
  /*
!  * The Apache Software License, Version 1.1
!  *
!  *
!  * Copyright (c) 1999-2004 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 at 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
!  * <http://www.apache.org/>.
   */
  
--- 1,16 ----
  /*
!  * Copyright 1999-2004 The Apache Software Foundation.
   *
!  * Licensed under the Apache License, Version 2.0 (the "License");
!  * you may not use this file except in compliance with the License.
!  * You may obtain a copy of the License at
   *
!  *     http://www.apache.org/licenses/LICENSE-2.0
   *
!  * Unless required by applicable law or agreed to in writing, software
!  * distributed under the License is distributed on an "AS IS" BASIS,
!  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
!  * See the License for the specific language governing permissions and
!  * limitations under the License.
   */
  
***************
*** 65,69 ****
  
  
! #include <list>
  
  
--- 24,28 ----
  
  
! #include <xalanc/Include/XalanList.hpp>
  
  
***************
*** 81,84 ****
--- 40,136 ----
  
  
+ #if defined(XALAN_HAS_CPP_NAMESPACE)
+ typedef U_ICU_NAMESPACE::Collator	CollatorType;
+ #else
+ typedef Collator					CollatorType;
+ #endif
+ 
+ struct CollationCacheStruct
+ {
+     CollationCacheStruct(
+         MemoryManagerType&      theManager,
+         const XalanDOMString&	theLocale,
+         CollatorType*			theCollator) :
+     m_locale(theLocale, theManager),
+         m_collator(theCollator)
+     {
+     }
+ 
+     CollationCacheStruct(MemoryManagerType& theManager) :
+     m_locale(theManager),
+         m_collator(0)
+     {
+     }
+ 
+     CollationCacheStruct(   const CollationCacheStruct& other,
+                             MemoryManagerType&          theManager) :
+     m_locale(other.m_locale,theManager),
+     m_collator(other.m_collator)
+     {
+     }
+     void
+         swap(CollationCacheStruct&	theOther)
+     {
+         m_locale.swap(theOther.m_locale);
+ 
+         CollatorType* const		theTemp = m_collator;
+ 
+         m_collator = theOther.m_collator;
+ 
+         theOther.m_collator = theTemp;
+     }
+ 
+ #if defined(XALAN_NO_SELECTIVE_TEMPLATE_INSTANTIATION)
+     bool
+         operator<(const CollationCacheStruct&  theRHS) const
+     {
+         return this < &theRHS;
+     }
+ 
+     bool
+         operator==(const CollationCacheStruct&	theRHS) const
+     {
+         return this == &theRHS;
+     }
+ #endif
+ 
+     XalanDOMString	m_locale;
+ 
+     CollatorType*	m_collator;
+ 
+     struct CollatorDeleteFunctor
+     {
+      CollatorDeleteFunctor(MemoryManagerType& theManager):
+         m_memoryManager(theManager)
+     {
+     }
+ 
+     void
+         operator()(CollationCacheStruct&	theStruct) const
+     {
+         delete theStruct.m_collator;
+     }
+     private:
+         MemoryManagerType& m_memoryManager;
+     };
+ 
+     struct CollatorFindFunctor
+     {
+         CollatorFindFunctor(const XalanDOMChar*	theLocale) :
+     m_locale(theLocale)
+     {
+     }
+ 
+     bool
+         operator()(CollationCacheStruct&	theStruct) const
+     {
+         return XalanDOMString::equals(theStruct.m_locale ,m_locale);
+     }
+ 
+     const XalanDOMChar* const	m_locale;
+     };
+ };
+ 
+ XALAN_USES_MEMORY_MANAGER(CollationCacheStruct)
  
  class XALAN_ICUBRIDGE_EXPORT ICUBridgeCollationCompareFunctorImpl : public XalanCollationServices::CollationCompareFunctor
***************
*** 91,98 ****
  	 * @param fCacheCollators If true, the instance will cache collators.  This is not thread-safe, so each thread must have its own instance.
  	 */
! 	ICUBridgeCollationCompareFunctorImpl(bool	fCacheCollators = false);
  
  	~ICUBridgeCollationCompareFunctorImpl();
  
  	int
  	operator()(
--- 143,162 ----
  	 * @param fCacheCollators If true, the instance will cache collators.  This is not thread-safe, so each thread must have its own instance.
  	 */
! 	ICUBridgeCollationCompareFunctorImpl(   MemoryManagerType&  theManager ,
!                                             bool	            fCacheCollators = false);
! 
! 	static ICUBridgeCollationCompareFunctorImpl*
!     create( MemoryManagerType&  theManager,
!             bool	            fCacheCollators = false);
! 
  
  	~ICUBridgeCollationCompareFunctorImpl();
  
+     MemoryManagerType& 
+     getMemoryManager()const
+     {
+         return m_collatorCache.getMemoryManager();
+     }
+ 
  	int
  	operator()(
***************
*** 114,200 ****
  	}
  
- #if defined(XALAN_HAS_CPP_NAMESPACE)
- 	typedef U_ICU_NAMESPACE::Collator	CollatorType;
- #else
- 	typedef Collator					CollatorType;
- #endif
- 
- 	struct CollationCacheStruct
- 	{
- 		CollationCacheStruct(
- 				const XalanDOMString&	theLocale,
- 				CollatorType*			theCollator) :
- 			m_locale(theLocale),
- 			m_collator(theCollator)
- 		{
- 		}
- 
- 		CollationCacheStruct() :
- 			m_locale(),
- 			m_collator(0)
- 		{
- 		}
- 
- 		void
- 		swap(CollationCacheStruct&	theOther)
- 		{
- 			m_locale.swap(theOther.m_locale);
- 
- 			CollatorType* const		theTemp = m_collator;
- 
- 			m_collator = theOther.m_collator;
- 
- 			theOther.m_collator = theTemp;
- 		}
- 
- #if defined(XALAN_NO_SELECTIVE_TEMPLATE_INSTANTIATION)
- 		bool
- 		operator<(const CollationCacheStruct&  theRHS) const
- 		{
- 			return this < &theRHS;
- 		}
- 
- 		bool
- 		operator==(const CollationCacheStruct&	theRHS) const
- 		{
- 			return this == &theRHS;
- 		}
- #endif
- 
- 		XalanDOMString	m_locale;
- 
- 		CollatorType*	m_collator;
  
! 		struct CollatorDeleteFunctor
! 		{
! 			void
! 			operator()(CollationCacheStruct&	theStruct) const
! 			{
! 				delete theStruct.m_collator;
! 			}
! 		};
! 
! 		struct CollatorFindFunctor
! 		{
! 			CollatorFindFunctor(const XalanDOMChar*	theLocale) :
! 				m_locale(theLocale)
! 			{
! 			}
! 
! 			bool
! 			operator()(CollationCacheStruct&	theStruct) const
! 			{
! 				return XalanDOMString::equals(theStruct.m_locale ,m_locale);
! 			}
! 
! 			const XalanDOMChar* const	m_locale;
! 		};
! 	};
! 
! #if defined(XALAN_NO_STD_NAMESPACE)
! 	typedef list<CollationCacheStruct>			CollatorCacheListType;
! #else
! 	typedef std::list<CollationCacheStruct>		CollatorCacheListType;
! #endif
  
  	enum { eCacheMax = 10 };
--- 178,183 ----
  	}
  
  
! 	typedef XalanList<CollationCacheStruct>			CollatorCacheListType;
  
  	enum { eCacheMax = 10 };



More information about the GME-commit mailing list