You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ro...@locus.apache.org on 2000/01/12 01:13:27 UTC

cvs commit: xml-xerces/c/src/framework LocalFileInputSource.cpp LocalFileInputSource.Hpp MemBufInputSource.cpp MemBufInputSource.hpp StdInInputSource.cpp StdInInputSource.hpp URLInputSource.cpp URLInputSource.hpp

roddey      00/01/11 16:13:27

  Added:       c/src/framework LocalFileInputSource.cpp
                        LocalFileInputSource.Hpp MemBufInputSource.cpp
                        MemBufInputSource.hpp StdInInputSource.cpp
                        StdInInputSource.hpp URLInputSource.cpp
                        URLInputSource.hpp
  Log:
  These were moved from internal/ to framework/, which was something that should have
  happened long ago. They are really framework type of classes.
  
  Revision  Changes    Path
  1.1                  xml-xerces/c/src/framework/LocalFileInputSource.cpp
  
  Index: LocalFileInputSource.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   * 
   * Copyright (c) 1999 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/>.
   */
  
  
  // ---------------------------------------------------------------------------
  //  Includes
  // ---------------------------------------------------------------------------
  #include <util/BinFileInputStream.hpp>
  #include <util/PlatformUtils.hpp>
  #include <framework/LocalFileInputSource.hpp>
  
  
  // ---------------------------------------------------------------------------
  //  LocalFileInputSource: Constructors and Destructor
  // ---------------------------------------------------------------------------
  LocalFileInputSource::LocalFileInputSource( const   XMLCh* const basePath
                                              , const XMLCh* const relativePath)
  {
      //
      //  Weave the two paths together in order to base the relative one
      //  off of the base one. Assume that the base path is a full path to
      //  a real file, so we throw off the name right off the bat.
      //
      XMLCh* tmpBuf = XMLPlatformUtils::weavePaths(basePath, relativePath);
      setSystemId(tmpBuf);
      delete [] tmpBuf;
  }
  
  LocalFileInputSource::LocalFileInputSource(const XMLCh* const filePath)
  {
      // Complete the path before storing it
      if (XMLPlatformUtils::isRelative(filePath))
      {
          XMLCh* tmpBuf = XMLPlatformUtils::getFullPath(filePath);
          setSystemId(tmpBuf);
          delete [] tmpBuf;
      }
       else
      {
          setSystemId(filePath);
      }
  }
  
  LocalFileInputSource::~LocalFileInputSource()
  {
  }
  
  
  // ---------------------------------------------------------------------------
  //  LocalFileInputSource: InputSource interface implementation
  // ---------------------------------------------------------------------------
  BinInputStream* LocalFileInputSource::makeStream() const
  {
      BinFileInputStream* retStrm = new BinFileInputStream(getSystemId());
      if (!retStrm->getIsOpen())
      {
          delete retStrm;
          return 0;
      }
      return retStrm;
  }
  
  
  
  1.1                  xml-xerces/c/src/framework/LocalFileInputSource.Hpp
  
  Index: LocalFileInputSource.Hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   * 
   * Copyright (c) 1999 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/>.
   */
  
  /**
   * $Log: LocalFileInputSource.Hpp,v $
   * Revision 1.1  2000/01/12 00:13:26  roddey
   * These were moved from internal/ to framework/, which was something that should have
   * happened long ago. They are really framework type of classes.
   *
   * Revision 1.1.1.1  1999/11/09 01:08:10  twl
   * Initial checkin
   *
   * Revision 1.2  1999/11/08 20:44:43  rahul
   * Swat for adding in Product name and CVS comment log variable.
   *
   */
  
  
  #if !defined(LOCALFILEINPUTSOURCE_HPP)
  #define LOCALFILEINPUTSOURCE_HPP
  
  #include <sax/InputSource.hpp>
  
  class BinInputStream;
  
  class XMLPARSER_EXPORT LocalFileInputSource : public InputSource
  {
  public :
      // -----------------------------------------------------------------------
      //  Constructors and Destructor
      // -----------------------------------------------------------------------
      LocalFileInputSource
      (
          const   XMLCh* const    basePath
          , const XMLCh* const    relativePath
      );
  
      LocalFileInputSource
      (
          const   XMLCh* const    filePath
      );
  
      ~LocalFileInputSource();
  
  
      // -----------------------------------------------------------------------
      //  Virtual input source interface
      // -----------------------------------------------------------------------
      virtual BinInputStream* makeStream() const;
  };
  
  #endif
  
  
  
  1.1                  xml-xerces/c/src/framework/MemBufInputSource.cpp
  
  Index: MemBufInputSource.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   * 
   * Copyright (c) 1999 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/>.
   */
  
  /**
   * $Log: MemBufInputSource.cpp,v $
   * Revision 1.1  2000/01/12 00:13:26  roddey
   * These were moved from internal/ to framework/, which was something that should have
   * happened long ago. They are really framework type of classes.
   *
   * Revision 1.1.1.1  1999/11/09 01:08:10  twl
   * Initial checkin
   *
   * Revision 1.2  1999/11/08 20:44:42  rahul
   * Swat for adding in Product name and CVS comment log variable.
   *
   */
  
  
  // ---------------------------------------------------------------------------
  //  Includes
  // ---------------------------------------------------------------------------
  #include <util/BinMemInputStream.hpp>
  #include <framework/MemBufInputSource.hpp>
  
  
  // ---------------------------------------------------------------------------
  //  MemBufInputSource: Constructors and Destructor
  // ---------------------------------------------------------------------------
  MemBufInputSource::MemBufInputSource(   const   XMLByte* const  srcDocBytes
                                          , const unsigned int    byteCount
                                          , const XMLCh* const    bufId
                                          , const bool            adoptBuffer) :
      InputSource(bufId)
      , fAdopted(adoptBuffer)
      , fByteCount(byteCount)
      , fCopyBufToStream(true)
      , fSrcBytes(srcDocBytes)
  {
  }
  
  MemBufInputSource::MemBufInputSource(   const   XMLByte* const  srcDocBytes
                                          , const unsigned int    byteCount
                                          , const char* const     bufId
                                          , const bool            adoptBuffer) :
      InputSource(bufId)
      , fAdopted(adoptBuffer)
      , fByteCount(byteCount)
      , fCopyBufToStream(true)
      , fSrcBytes(srcDocBytes)
  {
  }
  
  MemBufInputSource::~MemBufInputSource()
  {
      if (fAdopted)
          delete [] (XMLByte*)fSrcBytes;
  }
  
  
  // ---------------------------------------------------------------------------
  //  MemBufInputSource: InputSource interface implementation
  // ---------------------------------------------------------------------------
  BinInputStream* MemBufInputSource::makeStream() const
  {
      //
      //  Create a memory input stream over our buffer. According to our
      //  fCopyBufToStream flag, we either tell it to copy the buffer or to
      //  just reference it.
      //
      return new BinMemInputStream
      (
          fSrcBytes
          , fByteCount
          , fCopyBufToStream ? BinMemInputStream::BufOpt_Copy
                             : BinMemInputStream::BufOpt_Reference
      );
  }
  
  
  
  1.1                  xml-xerces/c/src/framework/MemBufInputSource.hpp
  
  Index: MemBufInputSource.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   * 
   * Copyright (c) 1999 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/>.
   */
  
  /**
   * $Log: MemBufInputSource.hpp,v $
   * Revision 1.1  2000/01/12 00:13:26  roddey
   * These were moved from internal/ to framework/, which was something that should have
   * happened long ago. They are really framework type of classes.
   *
   * Revision 1.1.1.1  1999/11/09 01:08:10  twl
   * Initial checkin
   *
   * Revision 1.2  1999/11/08 20:44:43  rahul
   * Swat for adding in Product name and CVS comment log variable.
   *
   */
  
  
  #if !defined(MEMBUFINPUTSOURCE_HPP)
  #define MEMBUFINPUTSOURCE_HPP
  
  #include <sax/InputSource.hpp>
  
  class BinInputStream;
  
  class XMLPARSER_EXPORT MemBufInputSource : public InputSource
  {
  public :
      // -----------------------------------------------------------------------
      //  Constructors and Destructor
      // -----------------------------------------------------------------------
      MemBufInputSource
      (
          const   XMLByte* const  srcDocBytes
          , const unsigned int    byteCount
          , const XMLCh* const    bufId
          , const bool            adoptBuffer = false
      );
  
      MemBufInputSource
      (
          const   XMLByte* const  srcDocBytes
          , const unsigned int    byteCount
          , const char* const     bufId
          , const bool            adoptBuffer = false
      );
  
      ~MemBufInputSource();
  
  
      // -----------------------------------------------------------------------
      //  Virtual input source interface
      // -----------------------------------------------------------------------
      BinInputStream* makeStream() const;
  
  
      // -----------------------------------------------------------------------
      //  Setter methods
      // -----------------------------------------------------------------------
      void setCopyBufToStream(const bool newState);
  
  
  private :
      // -----------------------------------------------------------------------
      //  Private data members
      //
      //  fAdopted
      //      Indicates whether the buffer is adopted or not. If so, then it
      //      is destroyed when the input source is destroyed.
      //
      //  fByteCount
      //      The size of the source document.
      //
      //  fCopyBufToStream
      //      This defaults to true (the safe option), which causes it to
      //      give a copy of the buffer to any streams it creates. If you set
      //      it to false, it will allow the streams to just reference the
      //      buffer (in which case this input source must stay alive as long
      //      as the buffer is in use by the stream.)
      //
      //  fSrcBytes
      //      The source memory buffer that is being spooled from. Whether it
      //      belongs to the this input source or not is controlled by the
      //      fAdopted flag.
      // -----------------------------------------------------------------------
      bool            fAdopted;
      unsigned int    fByteCount;
      bool            fCopyBufToStream;
      const XMLByte*  fSrcBytes;
  };
  
  
  inline void MemBufInputSource::setCopyBufToStream(const bool newState)
  {
      fCopyBufToStream = newState;
  }
  
  #endif
  
  
  
  1.1                  xml-xerces/c/src/framework/StdInInputSource.cpp
  
  Index: StdInInputSource.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   * 
   * Copyright (c) 1999 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/>.
   */
  
  /**
   * $Log: StdInInputSource.cpp,v $
   * Revision 1.1  2000/01/12 00:13:26  roddey
   * These were moved from internal/ to framework/, which was something that should have
   * happened long ago. They are really framework type of classes.
   *
   * Revision 1.1.1.1  1999/11/09 01:08:15  twl
   * Initial checkin
   *
   * Revision 1.3  1999/11/08 20:44:44  rahul
   * Swat for adding in Product name and CVS comment log variable.
   *
   */
  
  
  // ---------------------------------------------------------------------------
  //  Includes
  // ---------------------------------------------------------------------------
  #include <util/BinFileInputStream.hpp>
  #include <util/PlatformUtils.hpp>
  #include <framework/StdInInputSource.hpp>
  
  
  // ---------------------------------------------------------------------------
  //  StdInInputSource: Implementation of the input source interface
  // ---------------------------------------------------------------------------
  BinInputStream* StdInInputSource::makeStream() const
  {
      // Open a binary file stream for the standard input file handle
      BinFileInputStream* retStream = new BinFileInputStream
      (
          XMLPlatformUtils::openStdInHandle()
      );
  
      if (!retStream->getIsOpen())
      {
          delete retStream;
          return 0;
      }
      return retStream;
  }
  
  
  
  1.1                  xml-xerces/c/src/framework/StdInInputSource.hpp
  
  Index: StdInInputSource.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   * 
   * Copyright (c) 1999 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/>.
   */
  
  /**
   * $Log: StdInInputSource.hpp,v $
   * Revision 1.1  2000/01/12 00:13:26  roddey
   * These were moved from internal/ to framework/, which was something that should have
   * happened long ago. They are really framework type of classes.
   *
   * Revision 1.1.1.1  1999/11/09 01:08:17  twl
   * Initial checkin
   *
   * Revision 1.2  1999/11/08 20:44:44  rahul
   * Swat for adding in Product name and CVS comment log variable.
   *
   */
  
  
  
  #if !defined(STDININPUTSOURCE_HPP)
  #define STDININPUTSOURCE_HPP
  
  #include <sax/InputSource.hpp>
  
  class BinInputStream;
  
  class XMLPARSER_EXPORT StdInInputSource : public InputSource
  {
  public :
      // -----------------------------------------------------------------------
      //  Constructors and Destructor
      // -----------------------------------------------------------------------
      StdInInputSource();
      ~StdInInputSource();
  
  
      // -----------------------------------------------------------------------
      //  Virtual input source interface
      // -----------------------------------------------------------------------
      BinInputStream* makeStream() const;
  };
  
  inline StdInInputSource::StdInInputSource() :
  
      InputSource("stdin")
  {
  }
  
  inline StdInInputSource::~StdInInputSource()
  {
  }
  
  #endif
  
  
  
  1.1                  xml-xerces/c/src/framework/URLInputSource.cpp
  
  Index: URLInputSource.cpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   * 
   * Copyright (c) 1999 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/>.
   */
  
  /**
   * $Log: URLInputSource.cpp,v $
   * Revision 1.1  2000/01/12 00:13:26  roddey
   * These were moved from internal/ to framework/, which was something that should have
   * happened long ago. They are really framework type of classes.
   *
   * Revision 1.1.1.1  1999/11/09 01:08:18  twl
   * Initial checkin
   *
   * Revision 1.3  1999/11/08 20:44:44  rahul
   * Swat for adding in Product name and CVS comment log variable.
   *
   */
  
  
  // ---------------------------------------------------------------------------
  //  Includes
  // ---------------------------------------------------------------------------
  #include <util/BinFileInputStream.hpp>
  #include <util/Janitor.hpp>
  #include <util/URL.hpp>
  #include <util/XMLString.hpp>
  #include <framework/URLInputSource.hpp>
  
  
  // ---------------------------------------------------------------------------
  //  URLInputSource: Constructors and Destructor
  // ---------------------------------------------------------------------------
  URLInputSource::URLInputSource(const URL& urlId) :
  
      fURL(urlId)
  {
      setSystemId(fURL.getURLText());
  }
  
  URLInputSource::URLInputSource( const   XMLCh* const    baseId
                                  , const XMLCh* const    systemId) :
      fURL(baseId, systemId)                                    
  {
      // Create a URL that will build up the full URL and store as the system id
      setSystemId(fURL.getURLText());
  }
  
  URLInputSource::URLInputSource( const   XMLCh* const    baseId
                                  , const XMLCh* const    systemId
                                  , const XMLCh* const    publicId) :
      InputSource(0, publicId)
      , fURL(systemId, publicId)
  {
      setSystemId(fURL.getURLText());
  }
  
  URLInputSource::URLInputSource( const   XMLCh* const    baseId
                                  , const char* const     systemId) :
      fURL(baseId, systemId)
  {
      setSystemId(fURL.getURLText());
  }
  
  URLInputSource::URLInputSource( const   XMLCh* const   baseId
                                  , const char* const    systemId
                                  , const char* const    publicId) :
      InputSource(0, publicId)
      , fURL(baseId, systemId)
  {
      setSystemId(fURL.getURLText());
  }
  
  URLInputSource::~URLInputSource()
  {
  }
  
  
  // ---------------------------------------------------------------------------
  //  URLInputSource: Implementation of the input source interface
  // ---------------------------------------------------------------------------
  BinInputStream* URLInputSource::makeStream() const
  {
      // Ask the URL to create us an appropriate input stream
      return fURL.makeNewStream();
  }
  
  
  
  1.1                  xml-xerces/c/src/framework/URLInputSource.hpp
  
  Index: URLInputSource.hpp
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   * 
   * Copyright (c) 1999 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/>.
   */
  
  /**
   * $Log: URLInputSource.hpp,v $
   * Revision 1.1  2000/01/12 00:13:26  roddey
   * These were moved from internal/ to framework/, which was something that should have
   * happened long ago. They are really framework type of classes.
   *
   * Revision 1.1.1.1  1999/11/09 01:08:18  twl
   * Initial checkin
   *
   * Revision 1.2  1999/11/08 20:44:44  rahul
   * Swat for adding in Product name and CVS comment log variable.
   *
   */
  
  
  
  #if !defined(URLINPUTSOURCE_HPP)
  #define URLINPUTSOURCE_HPP
  
  #include <sax/InputSource.hpp>
  
  
  class XMLPARSER_EXPORT URLInputSource : public InputSource
  {
  public :
      // -----------------------------------------------------------------------
      //  Constructors and Destructor
      // -----------------------------------------------------------------------
      URLInputSource(const URL& urlId);
      URLInputSource
      (
          const   XMLCh* const    baseId
          , const XMLCh* const    systemId
      );
      URLInputSource
      (
          const   XMLCh* const    baseId
          , const XMLCh* const    systemId
          , const XMLCh* const    publicId
      );
      URLInputSource
      (
          const   XMLCh* const    baseId
          , const char* const     systemId
      );
      URLInputSource
      (
          const   XMLCh* const    baseId
          , const char* const     systemId
          , const char* const     publicId
      );
      ~URLInputSource();
  
  
      // -----------------------------------------------------------------------
      //  Virtual input source interface
      // -----------------------------------------------------------------------
      BinInputStream* makeStream() const;
  
  
      // -----------------------------------------------------------------------
      //  Getter methods
      // -----------------------------------------------------------------------
      const URL& urlSrc() const;
  
  
  private :
      // -----------------------------------------------------------------------
      //  Private data members
      //
      //  fURL
      //      This is the URL created from the passed ids.
      // -----------------------------------------------------------------------
      URL fURL;
  };
  
  
  inline const URL& URLInputSource::urlSrc() const
  {
      return fURL;
  }
  
  #endif