[GME-commit] GMESRC/GME/Include/xercesc/util/NetAccessors/MacOSURLAccessCF MacOSURLAccessCF.cpp, NONE, 1.1 MacOSURLAccessCF.hpp, NONE, 1.1 Makefile.in, NONE, 1.1 URLAccessCFBinInputStream.cpp, NONE, 1.1 URLAccessCFBinInputStream.hpp, NONE, 1.1
Log messages of CVS commits
gme-commit at list.isis.vanderbilt.edu
Tue Feb 19 14:16:30 CST 2008
- Previous message: [GME-commit] GMESRC/GME/Include/xercesc/util/MsgLoaders/msgfile CrtXMLMsgs, NONE, 1.1 Makefile.in, NONE, 1.1 MsgLoader.cpp, NONE, 1.1 MsgLoader.hpp, NONE, 1.1 XMLMessages.h, NONE, 1.1
- Next message: [GME-commit] GMESRC/GME/Include/xercesc/parsers AbstractDOMParser.cpp, NONE, 1.1 DOMBuilderImpl.cpp, NONE, 1.1 Makefile.in, NONE, 1.1 SAX2XMLFilterImpl.cpp, NONE, 1.1 SAX2XMLFilterImpl.hpp, NONE, 1.1 SAX2XMLReaderImpl.cpp, NONE, 1.1 SAXParser.cpp, NONE, 1.1 XercesDOMParser.cpp, NONE, 1.1 AbstractDOMParser.hpp, 1.1.1.1, 1.2 DOMBuilderImpl.hpp, 1.1.1.1, 1.2 SAX2XMLReaderImpl.hpp, 1.1.1.1, 1.2 SAXParser.hpp, 1.1.1.1, 1.2 XercesDOMParser.hpp, 1.1.1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /project/gme-repository/GMESRC/GME/Include/xercesc/util/NetAccessors/MacOSURLAccessCF
In directory escher:/tmp/cvs-serv26529/util/NetAccessors/MacOSURLAccessCF
Added Files:
MacOSURLAccessCF.cpp MacOSURLAccessCF.hpp Makefile.in
URLAccessCFBinInputStream.cpp URLAccessCFBinInputStream.hpp
Log Message:
Xerces2.7 includes checkin.
CVS User: Zoltan Molnar, ISIS (zolmol)
--- NEW FILE: URLAccessCFBinInputStream.hpp ---
/*
* Copyright 1999-2000,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.
*/
/*
* $Id: URLAccessCFBinInputStream.hpp,v 1.1 2008/02/19 20:16:28 zolmol Exp $
*/
#if !defined(URLACCESSCFBININPUTSTREAM_HPP)
#define URLACCESSCFBININPUTSTREAM_HPP
#include <xercesc/util/XMLURL.hpp>
#include <xercesc/util/XMLExceptMsgs.hpp>
#include <xercesc/util/BinInputStream.hpp>
#if defined(__APPLE__)
// Framework includes from ProjectBuilder
#include <CoreServices/CoreServices.h>
#else
// Classic includes otherwise
#include <CFURL.h>
#include <CFURLAccess.h>
#endif
XERCES_CPP_NAMESPACE_BEGIN
//
// This class implements the BinInputStream interface specified by the XML
// parser.
//
class XMLUTIL_EXPORT URLAccessCFBinInputStream : public BinInputStream
{
public :
URLAccessCFBinInputStream(const XMLURL& urlSource);
~URLAccessCFBinInputStream();
unsigned int curPos() const;
unsigned int readBytes
(
XMLByte* const toFill
, const unsigned int maxToRead
);
private :
CFDataRef mDataRef;
CFIndex mBytesProcessed;
};
inline unsigned int
URLAccessCFBinInputStream::curPos() const
{
return mBytesProcessed;
}
XERCES_CPP_NAMESPACE_END
#endif // URLACCESSCFBININPUTSTREAM_HPP
--- NEW FILE: Makefile.in ---
#
# Copyright 1999-2000,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.
#
#
#
# $Log: Makefile.in,v $
# Revision 1.1 2008/02/19 20:16:28 zolmol
# Xerces2.7 includes checkin.
#
# Revision 1.4 2004/09/08 13:56:34 peiyongz
# Apache License Version 2.0
#
# Revision 1.3 2004/07/09 16:17:37 peiyongz
# Build on HP-Itanium, aCC A.05.52
#
# Revision 1.2 2002/07/26 16:49:28 tng
# [Bug 2681] Can't build with gcc/g++ not named 'gcc'/'g++'. Patch from Jonathan Lennox.
#
# Revision 1.1 2002/02/18 05:50:42 jberry
# Create new NetAccessor class for Mac OS that doesn't rely on Carbon
# APIs, but only on CoreServices APIs, and thus can be run from a
# remote context.
#
#
#
PLATFORM = @platform@
CC = @cc@
CXX = @cxx@
CXXVER = @cxxver@
GCC = @GCC@
GXX = @GXX@
CXXFLAGS = @cxxflags@
CFLAGS = @cflags@
PREFIX = @prefix@
PREFIX_INCLUDE = @prefix_include@
LDFLAGS = @ldflags@
LIBS = @libs@
OSVER = @osver@
USELIBWWW = @uselibwww@
MESSAGELOADER = @messageloader@
TRANSCODER = @transcoder@
NETACCESSOR = @netaccessor@
THREADS = @threads@
MODULE = util
SUBMODULE = NetAccessors/MacOSURLAccessCF
include ../../../Makefile.incl
CPP_PUBHEADERS = \
MacOSURLAccessCF.hpp \
URLAccessCFBinInputStream.hpp
CPP_OBJECTS = \
MacOSURLAccessCF.$(TO) \
URLAccessCFBinInputStream.$(TO)
include ../../Makefile.util.submodule
--- NEW FILE: URLAccessCFBinInputStream.cpp ---
/*
* Copyright 1999-2000,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.
*/
/*
* $Id: URLAccessCFBinInputStream.cpp,v 1.1 2008/02/19 20:16:28 zolmol Exp $
*/
#include <cstdlib>
#include <cstring>
#include <xercesc/util/XMLNetAccessor.hpp>
#include <xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLExceptMsgs.hpp>
#include <xercesc/util/Janitor.hpp>
XERCES_CPP_NAMESPACE_BEGIN
URLAccessCFBinInputStream::URLAccessCFBinInputStream(const XMLURL& urlSource)
: mBytesProcessed(0),
mDataRef(NULL)
{
// Figure out what we're dealing with
const XMLCh* urlText = urlSource.getURLText();
unsigned int urlLength = XMLString::stringLen(urlText);
// Create a CFString from the path
CFStringRef stringRef = NULL;
if (urlText)
{
stringRef = CFStringCreateWithCharacters(
kCFAllocatorDefault,
urlText,
urlLength
);
}
// Create a URLRef from the CFString
CFURLRef urlRef = NULL;
if (stringRef)
{
urlRef = CFURLCreateWithString(
kCFAllocatorDefault,
stringRef,
NULL // CFURLRef baseURL
);
}
// Fetch the data
mDataRef = NULL;
SInt32 errorCode = 0;
Boolean success = false;
if (stringRef)
{
success = CFURLCreateDataAndPropertiesFromResource(
kCFAllocatorDefault,
urlRef,
&mDataRef,
NULL, // CFDictionaryRef *properties,
NULL, // CFArrayRef desiredProperties,
&errorCode
);
}
// Cleanup temporary stuff
if (stringRef)
CFRelease(stringRef);
if (urlRef)
CFRelease(urlRef);
// Check for an error in fetching the data
if (!success || errorCode)
{
// Dispose any potential dataRef
if (mDataRef)
{
CFRelease(mDataRef);
mDataRef = NULL;
}
// Do a best attempt at mapping some errors
switch (errorCode)
{
case kCFURLUnknownSchemeError:
ThrowXML(MalformedURLException, XMLExcepts::URL_UnsupportedProto);
break;
case kCFURLRemoteHostUnavailableError:
ThrowXML1(NetAccessorException, XMLExcepts::NetAcc_TargetResolution, urlSource.getHost());
break;
case kCFURLUnknownError:
ThrowXML1(NetAccessorException, XMLExcepts::NetAcc_ReadSocket, urlText);
break;
case kCFURLResourceNotFoundError:
case kCFURLResourceAccessViolationError:
case kCFURLTimeoutError:
ThrowXML1(NetAccessorException, XMLExcepts::File_CouldNotOpenFile, urlText);
break;
case kCFURLImproperArgumentsError:
case kCFURLUnknownPropertyKeyError:
case kCFURLPropertyKeyUnavailableError:
default:
ThrowXML1(NetAccessorException, XMLExcepts::NetAcc_InternalError, urlText);
break;
}
}
}
URLAccessCFBinInputStream::~URLAccessCFBinInputStream()
{
// Release any dataRef
if (mDataRef)
CFRelease(mDataRef);
}
//
// We've already read the data into a dataRef.
// Just spoon it out to the caller as they ask for it.
//
unsigned int
URLAccessCFBinInputStream::readBytes(XMLByte* const toFill
, const unsigned int maxToRead)
{
// If we don't have a dataRef, we can't return any data
if (!mDataRef)
return 0;
// Get the length of the data we've fetched
CFIndex dataLength = CFDataGetLength(mDataRef);
// Calculate how much to return based on how much
// we've already returned, and how much the user wants
CFIndex n = dataLength - mBytesProcessed; // Amount remaining
CFIndex desired = maxToRead & 0x7fffffff; // CFIndex is signed
if (n > desired) // Amount desired
n = desired;
// Read the appropriate bytes into the user buffer
CFRange range = CFRangeMake(mBytesProcessed, n);
CFDataGetBytes(mDataRef, range, reinterpret_cast<UInt8*>(toFill));
// Update bytes processed
mBytesProcessed += n;
// Return the number of bytes delivered
return n;
}
XERCES_CPP_NAMESPACE_END
--- NEW FILE: MacOSURLAccessCF.hpp ---
/*
* Copyright 1999-2000,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.
*/
/*
* $Id: MacOSURLAccessCF.hpp,v 1.1 2008/02/19 20:16:28 zolmol Exp $
*/
#if !defined(MACOSURLACCESSCF_HPP)
#define MACOSURLACCESSCF_HPP
#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/util/XMLURL.hpp>
#include <xercesc/util/BinInputStream.hpp>
#include <xercesc/util/XMLNetAccessor.hpp>
XERCES_CPP_NAMESPACE_BEGIN
//
// This class is the wrapper for the Mac OS CFURLAccess code
// (in CoreServices.framework) which provides access to network
// resources. It's being used here to add the ability to
// use HTTP URL's as the system id's in the XML decl clauses.
//
class XMLUTIL_EXPORT MacOSURLAccessCF : public XMLNetAccessor
{
public :
MacOSURLAccessCF();
~MacOSURLAccessCF();
BinInputStream* makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo=0);
const XMLCh* getId() const;
private :
static const XMLCh sMyID[];
MacOSURLAccessCF(const MacOSURLAccessCF&);
MacOSURLAccessCF& operator=(const MacOSURLAccessCF&);
};
inline const XMLCh*
MacOSURLAccessCF::getId() const
{
return sMyID;
}
XERCES_CPP_NAMESPACE_END
#endif // MACOSURLACCESSCF_HPP
--- NEW FILE: MacOSURLAccessCF.cpp ---
/*
* Copyright 1999-2000,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.
*/
/*
* $Id: MacOSURLAccessCF.cpp,v 1.1 2008/02/19 20:16:28 zolmol Exp $
*/
#include <xercesc/util/XMLUni.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLExceptMsgs.hpp>
#include <xercesc/util/NetAccessors/MacOSURLAccessCF/MacOSURLAccessCF.hpp>
#include <xercesc/util/NetAccessors/MacOSURLAccessCF/URLAccessCFBinInputStream.hpp>
XERCES_CPP_NAMESPACE_BEGIN
const XMLCh
MacOSURLAccessCF::sMyID[] =
{
chLatin_M, chLatin_a, chLatin_c, chLatin_O, chLatin_S, chLatin_U,
chLatin_R, chLatin_L, chLatin_A, chLatin_c, chLatin_c, chLatin_e,
chLatin_s, chLatin_s, chLatin_C, chLatin_F,
chNull
};
MacOSURLAccessCF::MacOSURLAccessCF()
{
}
MacOSURLAccessCF::~MacOSURLAccessCF()
{
}
BinInputStream*
MacOSURLAccessCF::makeNew(const XMLURL& urlSource, const XMLNetHTTPInfo* httpInfo/*=0*/)
{
if(httpInfo!=0 && httpInfo->fHTTPMethod!=XMLNetHTTPInfo::GET)
ThrowXML(NetAccessorException, XMLExcepts::NetAcc_UnsupportedMethod);
BinInputStream* result = new (urlSource.getMemoryManager()) URLAccessCFBinInputStream(urlSource);
return result;
}
XERCES_CPP_NAMESPACE_END
- Previous message: [GME-commit] GMESRC/GME/Include/xercesc/util/MsgLoaders/msgfile CrtXMLMsgs, NONE, 1.1 Makefile.in, NONE, 1.1 MsgLoader.cpp, NONE, 1.1 MsgLoader.hpp, NONE, 1.1 XMLMessages.h, NONE, 1.1
- Next message: [GME-commit] GMESRC/GME/Include/xercesc/parsers AbstractDOMParser.cpp, NONE, 1.1 DOMBuilderImpl.cpp, NONE, 1.1 Makefile.in, NONE, 1.1 SAX2XMLFilterImpl.cpp, NONE, 1.1 SAX2XMLFilterImpl.hpp, NONE, 1.1 SAX2XMLReaderImpl.cpp, NONE, 1.1 SAXParser.cpp, NONE, 1.1 XercesDOMParser.cpp, NONE, 1.1 AbstractDOMParser.hpp, 1.1.1.1, 1.2 DOMBuilderImpl.hpp, 1.1.1.1, 1.2 SAX2XMLReaderImpl.hpp, 1.1.1.1, 1.2 SAXParser.hpp, 1.1.1.1, 1.2 XercesDOMParser.hpp, 1.1.1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the GME-commit
mailing list