You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by pe...@apache.org on 2002/05/29 00:40:46 UTC

cvs commit: xml-xerces/c/src/xercesc/framework StdOutFormatTarget.hpp StdOutFormatTarget.cpp MemBufFormatTarget.hpp MemBufFormatTarget.cpp Makefile.in

peiyongz    02/05/28 15:40:46

  Modified:    c/src/xercesc/framework Makefile.in
  Added:       c/src/xercesc/framework StdOutFormatTarget.hpp
                        StdOutFormatTarget.cpp MemBufFormatTarget.hpp
                        MemBufFormatTarget.cpp
  Log:
  DOM3 Save Interface: DOMWriter/DOMWriterFilter
  
  Revision  Changes    Path
  1.2       +7 -0      xml-xerces/c/src/xercesc/framework/Makefile.in
  
  Index: Makefile.in
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/Makefile.in,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Makefile.in	1 Feb 2002 22:21:50 -0000	1.1
  +++ Makefile.in	28 May 2002 22:40:46 -0000	1.2
  @@ -55,8 +55,11 @@
   #
   #
   # $Log: Makefile.in,v $
  -# Revision 1.1  2002/02/01 22:21:50  peiyongz
  -# Initial revision
  +# Revision 1.2  2002/05/28 22:40:46  peiyongz
  +# DOM3 Save Interface: DOMWriter/DOMWriterFilter
  +#
  +# Revision 1.1.1.1  2002/02/01 22:21:50  peiyongz
  +# sane_include
   #
   # Revision 1.11  2001/07/06 17:11:56  tng
   # Automatic build of single-threaded library.  By Martin Kalen.
  @@ -125,7 +128,9 @@
   FRAMEWORK_CPP_PUBHEADERS = \
   	LocalFileInputSource.hpp \
   	MemBufInputSource.hpp \
  +	MemBufFormatTarget.hpp \
   	StdInInputSource.hpp \
  +	StdOutFormatTarget.hpp \
   	URLInputSource.hpp \
   	XMLAttDef.hpp \
   	XMLAttDefList.hpp \
  @@ -154,7 +159,9 @@
   FRAMEWORK_CPP_OBJECTS = \
   	LocalFileInputSource.$(TO) \
   	MemBufInputSource.$(TO) \
  +	MemBufFormatTarget.$(TO) \
   	StdInInputSource.$(TO) \
  +	StdOutFormatTarget.$(TO) \
   	URLInputSource.$(TO) \
   	XMLAttDef.$(TO) \
   	XMLAttr.$(TO) \
  
  
  
  1.1                  xml-xerces/c/src/xercesc/framework/StdOutFormatTarget.hpp
  
  Index: StdOutFormatTarget.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 "Xerces" 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
   * <http://www.apache.org/>.
   */
  
  /*
   * $Id: StdOutFormatTarget.hpp,v 1.1 2002/05/28 22:40:46 peiyongz Exp $
   * $Log: StdOutFormatTarget.hpp,v $
   * Revision 1.1  2002/05/28 22:40:46  peiyongz
   * DOM3 Save Interface: DOMWriter/DOMWriterFilter
   *
   */
  
  #ifndef StdOutFormatTarget_HEADER_GUARD_
  #define StdOutFormatTarget_HEADER_GUARD_
  
  #include <xercesc/framework/XMLFormatter.hpp>
  
  class XMLPARSER_EXPORT StdOutFormatTarget : public XMLFormatTarget {
  public:
  
      /** @name constructors and destructor */
      //@{
      StdOutFormatTarget() ;
      ~StdOutFormatTarget();
      //@}
  
      // -----------------------------------------------------------------------
      //  Implementations of the format target interface
      // -----------------------------------------------------------------------
      virtual void writeChars(const XMLByte* const toWrite
                            , const unsigned int   count
                            , XMLFormatter* const  formatter);
  
  private:
      // -----------------------------------------------------------------------
      //  Unimplemented methods.
      // -----------------------------------------------------------------------
      StdOutFormatTarget(const StdOutFormatTarget& other);
      void operator=(const StdOutFormatTarget& rhs);
  };
  
  #endif
  
  
  
  1.1                  xml-xerces/c/src/xercesc/framework/StdOutFormatTarget.cpp
  
  Index: StdOutFormatTarget.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 "Xerces" 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
   * <http://www.apache.org/>.
   */
  
  /*
   * $Id: StdOutFormatTarget.cpp,v 1.1 2002/05/28 22:40:46 peiyongz Exp $
   * $Log: StdOutFormatTarget.cpp,v $
   * Revision 1.1  2002/05/28 22:40:46  peiyongz
   * DOM3 Save Interface: DOMWriter/DOMWriterFilter
   *
   */
  
  #include <xercesc/framework/StdOutFormatTarget.hpp>
  #include <iostream.h>
  
  StdOutFormatTarget::StdOutFormatTarget()
  {}
  
  StdOutFormatTarget::~StdOutFormatTarget()
  {}
  
  void StdOutFormatTarget::writeChars(const XMLByte* const  toWrite
                                    , const unsigned int    count
                                    , XMLFormatter* const   formatter)   
  {
          // Surprisingly, Solaris was the only platform on which
          // required the char* cast to print out the string correctly.
          // Without the cast, it was printing the pointer value in hex.
          // Quite annoying, considering every other platform printed
          // the string with the explicit cast to char* below.
  	cout.write((char *) toWrite, (int) count);
  
  }
  
  
  
  
  
  
  1.1                  xml-xerces/c/src/xercesc/framework/MemBufFormatTarget.hpp
  
  Index: MemBufFormatTarget.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 "Xerces" 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
   * <http://www.apache.org/>.
   */
  
  /*
   * $Id: MemBufFormatTarget.hpp,v 1.1 2002/05/28 22:40:46 peiyongz Exp $
   * $Log: MemBufFormatTarget.hpp,v $
   * Revision 1.1  2002/05/28 22:40:46  peiyongz
   * DOM3 Save Interface: DOMWriter/DOMWriterFilter
   *
   */
  
  #ifndef MemBufFormatTarget_HEADER_GUARD_
  #define MemBufFormatTarget_HEADER_GUARD_
  
  #include <xercesc/framework/XMLFormatter.hpp>
  #include <xercesc/framework/XMLBuffer.hpp>
  
  class XMLPARSER_EXPORT MemBufFormatTarget : public XMLFormatTarget {
  public:
  
      /** @name constructors and destructor */
      //@{
      MemBufFormatTarget() ;
      ~MemBufFormatTarget();
      //@}
  
      // -----------------------------------------------------------------------
      //  Implementations of the format target interface
      // -----------------------------------------------------------------------
      virtual void writeChars(const XMLByte* const toWrite
                            , const unsigned int   count
                            , XMLFormatter* const  formatter);
  
      // -----------------------------------------------------------------------
      //  Getter
      // -----------------------------------------------------------------------
      /** @name getString */
  	/**
  	  * caller owns the returned string and is accountable
  	  * for the memory release
  	  */
      //@{
      XMLCh* getString() const;
  
  private:
      // -----------------------------------------------------------------------
      //  Unimplemented methods.
      // -----------------------------------------------------------------------
      MemBufFormatTarget(const MemBufFormatTarget& other);
      void operator=(const MemBufFormatTarget& rhs);
  
      XMLBuffer     *fDataBuf;
  
  };
  
  #endif
  
  
  
  
  1.1                  xml-xerces/c/src/xercesc/framework/MemBufFormatTarget.cpp
  
  Index: MemBufFormatTarget.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 "Xerces" 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
   * <http://www.apache.org/>.
   */
  
  /*
   * $Id: MemBufFormatTarget.cpp,v 1.1 2002/05/28 22:40:46 peiyongz Exp $
   * $Log: MemBufFormatTarget.cpp,v $
   * Revision 1.1  2002/05/28 22:40:46  peiyongz
   * DOM3 Save Interface: DOMWriter/DOMWriterFilter
   *
   */
  
  #include <xercesc/framework/MemBufFormatTarget.hpp>
  #include <xercesc/util/XMLString.hpp>
  
  MemBufFormatTarget::MemBufFormatTarget()
  :fDataBuf(0)
  {
  	fDataBuf = new XMLBuffer();
  }
  
  MemBufFormatTarget::~MemBufFormatTarget()
  {
  	delete fDataBuf;
  }
  
  void MemBufFormatTarget::writeChars(const XMLByte* const toWrite
                                    , const unsigned int   count
                                    , XMLFormatter * const formatter)
  {
  	//
  	// The toWrite may not be null terminated,
  	// so we need to do some extra work here
  	// 
  	XMLByte  lastChar = toWrite[count];   // preserve the last char
  	XMLByte* tmpBuf   = (XMLByte *)toWrite;
      tmpBuf[count] = 0;
  
  	XMLCh*   transBuf = XMLString::transcode((char *) tmpBuf);
  	fDataBuf->append(transBuf, XMLString::stringLen(transBuf));
  	delete[] transBuf;                       
  
  	tmpBuf[count] = lastChar;             // restore the last char
  }
  
  XMLCh* MemBufFormatTarget::getString() const
  {
  	return XMLString::replicate(fDataBuf->getRawBuffer());
  }
  
  
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org