亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? maccarbonfile.cpp

?? IBM的解析xml的工具Xerces的源代碼
?? 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: MacCarbonFile.cpp,v 1.2 2004/09/08 13:56:40 peiyongz Exp $ */ #include <xercesc/util/XercesDefs.hpp>#include <xercesc/util/XMLString.hpp>#include <xercesc/util/Janitor.hpp>#include <xercesc/util/Platforms/MacOS/MacCarbonFile.hpp>#if defined(__APPLE__)    //	Include from Frameworks Headers under ProjectBuilder    #include <Carbon/Carbon.h>#else    //	Classic include styles    #include <Files.h>    #include <TextUtils.h>#endifXERCES_CPP_NAMESPACE_BEGIN//----------------------------------------------------------------------------// XMLMacCarbonFile methods//----------------------------------------------------------------------------unsigned intXMLMacCarbonFile::currPos(){    OSErr err = noErr;    unsigned int pos = 0;    if (!mFileValid)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetCurPos);    if (gHasHFSPlusAPIs)    {        SInt64 bigPos = 0;        err = FSGetForkPosition(mFileRefNum, &bigPos);        if (err == noErr)            pos = bigPos;    }    else    {        long longPos;        err = GetFPos(mFileRefNum, &longPos);        if (err == noErr)            pos = longPos;    }    if (err != noErr)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetCurPos);    return pos;}voidXMLMacCarbonFile::close(){    OSErr err = noErr;    if (!mFileValid)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotCloseFile);    if (gHasHFSPlusAPIs)        err = FSCloseFork(mFileRefNum);    else        err = FSClose(mFileRefNum);    mFileValid = false;    if (err != noErr)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotCloseFile);}unsigned intXMLMacCarbonFile::size(){    OSErr err = noErr;    unsigned int len = 0;    if (!mFileValid)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetSize);    if (gHasHFSPlusAPIs)    {        SInt64 bigLen = 0;        err = FSGetForkSize(mFileRefNum, &bigLen);        if (err == noErr)            len = bigLen;    }    else    {        long longLen;        err = GetEOF(mFileRefNum, &longLen);        if (err == noErr)            len = longLen;    }    if (err != noErr)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotGetSize);    return len;}boolXMLMacCarbonFile::openWithPermission(const XMLCh* const fileName, int macPermission){    OSErr err = noErr;    if (mFileValid)        ThrowXML1(XMLPlatformUtilsException, XMLExcepts::File_CouldNotOpenFile, fileName);    if (gHasHFSPlusAPIs)    {        FSRef ref;        if (!XMLParsePathToFSRef(fileName, ref))            err = fnfErr;        HFSUniStr255 forkName;        if (err == noErr)            err = FSGetDataForkName(&forkName);        if (err == noErr)            err = FSOpenFork(&ref, forkName.length, forkName.unicode, macPermission, &mFileRefNum);    }    else    {        FSSpec spec;        if (!XMLParsePathToFSSpec(fileName, spec))            err = fnfErr;        if (err == noErr)            err = FSpOpenDF(&spec, macPermission, &mFileRefNum);    }    if (err != noErr)        ThrowXML1(XMLPlatformUtilsException, XMLExcepts::File_CouldNotOpenFile, fileName);    mFileValid = true;	return mFileValid;}voidXMLMacCarbonFile::create(const XMLCh* const filePath){    OSErr err = noErr;    //	Split path into directory and filename components    int posSlash = XMLString::lastIndexOf(filePath, '/', XMLString::stringLen(filePath) - 1);    int posName = (posSlash == -1) ? 0 : posSlash+1;    const XMLCh* namePtr = filePath + posName;    int nameLen = XMLString::stringLen(namePtr);    //	Make a temporary string of the directory    ArrayJanitor<XMLCh> dirPath(new XMLCh[namePtr - filePath + 1]);    XMLString::subString(dirPath.get(), filePath, 0, posName);    //	Create the file as appropriate for API set    if (gHasHFSPlusAPIs)    {    	//	HFS+        FSRef ref;        //	If we find an existing file, delete it        if (XMLParsePathToFSRef(filePath, ref))            FSDeleteObject(&ref);        //	Get a ref to the parent directory        if (!XMLParsePathToFSRef(dirPath.get(), ref))            err = fnfErr;        //	Create a new file using the unicode name        if (err == noErr)        {            UniChar uniName[256];            err = FSCreateFileUnicode(                    &ref,                    nameLen, CopyXMLChsToUniChars(namePtr, uniName, nameLen, sizeof(uniName)),                    0, NULL, NULL, NULL);        }    }    else    {    	//	HFS        FSSpec spec;        //	If we find an existing file, delete it        if (XMLParsePathToFSSpec(filePath, spec))            FSpDelete(&spec);        //	Get a spec to the parent directory        if (!XMLParsePathToFSSpec(dirPath.get(), spec))            err = fnfErr;        //	Check that the new name is not too long for HFS        if (err == noErr && nameLen > 31)            err = errFSNameTooLong;        if (err == noErr)        {            //	Transcode the unicode name to native encoding            ArrayJanitor<const char> nativeName(XMLString::transcode(namePtr));            // Make a partial pathname from our current spec (parent directory) to the new file            unsigned char name[31 * 2 + 1 * 2 + 1];            unsigned char* partial = &name[1];            *partial++ = ':';      			 // Partial leads with :            const unsigned char* specName = spec.name;	// Copy in spec name            for (int specCnt = *specName++; specCnt > 0; --specCnt)                *partial++ = *specName++;            *partial++ = ':';      			 // Path component separator            char c;            for (const char* p = nativeName.get(); (c = *p++) != 0; ) // Copy in new element                *partial++ = (c == ':') ? '/' : c;		// Convert : to /            name[0] = partial - &name[1];   // Set the pascal string name length            //	Update the spec: this will probably return fnfErr            //					 (since we just deleted any existing file)            err = FSMakeFSSpec(spec.vRefNum, spec.parID, name, &spec);            //	Create the file from the spec            err = FSpCreate(&spec, '??\??', 'TEXT', smSystemScript);        }    }    //	Fail if we didn't create the file    if (err != noErr)    {        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotReadFromFile);        //ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotWriteToFile);    }}boolXMLMacCarbonFile::open(const XMLCh* const path, bool toWrite){	bool success = false;		if (toWrite)	{		create(path);		success = openWithPermission(path, fsRdWrPerm);	}	else	{		success = openWithPermission(path, fsRdPerm);	}		return success;}boolXMLMacCarbonFile::open(const char* fileName, bool toWrite){	//	Transcode the input filename from UTF8 into UTF16	UniChar uniBuf[kMaxMacStaticPathChars];	std::size_t pathLen = TranscodeUTF8ToUniChars(fileName, uniBuf, kMaxMacStaticPathChars-1);	uniBuf[pathLen++] = 0;		//	Call through to the unicode open routine	return open(uniBuf, toWrite);}unsigned intXMLMacCarbonFile::read(const unsigned int toRead, XMLByte* const toFill){    unsigned int bytesRead = 0;    OSErr err = noErr;    if (!mFileValid)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotReadFromFile);    if (gHasHFSPlusAPIs)    {        ByteCount actualCount;        err = FSReadFork(mFileRefNum, fsFromMark, 0, toRead, toFill, &actualCount);        bytesRead = actualCount;    }    else    {        long byteCount = toRead;        err = FSRead(mFileRefNum, &byteCount, toFill);        bytesRead = byteCount;    }    if (err != noErr && err != eofErr)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotReadFromFile);    return bytesRead;}voidXMLMacCarbonFile::write(const long byteCount, const XMLByte* const buffer){    long bytesWritten = 0;    OSErr err = noErr;    if (byteCount <= 0 || buffer == NULL)        return;    if (!mFileValid)    {        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotWriteToFile);    }    if (gHasHFSPlusAPIs)    {        ByteCount actualCount;        err = FSWriteFork(mFileRefNum, fsFromMark, 0, byteCount, buffer, &actualCount);        bytesWritten = actualCount;    }    else    {        long count = byteCount;        err = FSWrite(mFileRefNum, &count, buffer);        bytesWritten = count;    }    if ((err != noErr && err != eofErr) || (bytesWritten != byteCount))    {        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotWriteToFile);    }}voidXMLMacCarbonFile::reset(){    OSErr err = noErr;    if (!mFileValid)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotResetFile);    if (gHasHFSPlusAPIs)        err = FSSetForkPosition(mFileRefNum, fsFromStart, 0);    else        err = SetFPos(mFileRefNum, fsFromStart, 0);    if (err != noErr)        ThrowXML(XMLPlatformUtilsException, XMLExcepts::File_CouldNotResetFile);}XMLMacCarbonFile::~XMLMacCarbonFile(){    if (mFileValid)        close();}XERCES_CPP_NAMESPACE_END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性videosxxxxx| 亚洲一区国产视频| 亚洲另类中文字| 久久成人免费网| 在线欧美一区二区| 国产日韩欧美a| 男女男精品视频| 欧美日韩免费观看一区三区| 国产精品污www在线观看| 日本成人在线视频网站| 欧美三级日本三级少妇99| 国产精品国产精品国产专区不蜜| 九色|91porny| 欧美电影在哪看比较好| 亚洲精品伦理在线| av电影在线观看不卡| 久久综合资源网| 九色|91porny| 精品剧情v国产在线观看在线| 婷婷综合在线观看| 欧美日韩视频专区在线播放| 亚洲乱码中文字幕| 97精品久久久久中文字幕| 国产无一区二区| 国产九色sp调教91| 精品国产精品一区二区夜夜嗨 | 国产拍揄自揄精品视频麻豆| 精品在线观看视频| 精品国产一区二区三区忘忧草 | 五月天一区二区三区| 日本福利一区二区| 亚洲日本免费电影| 91在线一区二区三区| 日韩伦理电影网| 91国产丝袜在线播放| 亚洲综合视频在线观看| 欧美天堂亚洲电影院在线播放 | 亚洲同性同志一二三专区| 成人国产精品免费网站| 国产精品第四页| 91一区二区三区在线观看| 亚洲女人****多毛耸耸8| 在线日韩国产精品| 亚州成人在线电影| 欧美电影免费观看完整版| 韩国成人福利片在线播放| 久久精品视频在线看| 成人丝袜视频网| 亚洲精选一二三| 欧美日韩另类一区| 久久99精品国产麻豆婷婷| 久久久一区二区| 色综合久久久久| 天天影视色香欲综合网老头| 精品国产一区二区国模嫣然| 成人免费视频app| 亚洲一区二区三区四区在线免费观看| 欧美日韩一本到| 久久66热re国产| 亚洲欧美色一区| 日韩一级欧美一级| 丰满少妇久久久久久久| 亚洲一级不卡视频| 精品欧美久久久| jlzzjlzz亚洲女人18| 午夜成人免费视频| 国产欧美一区二区精品性色超碰| 一本一道久久a久久精品| 日韩不卡一区二区| 国产精品国产三级国产普通话三级| 欧美色倩网站大全免费| 国产精品自产自拍| 午夜亚洲福利老司机| 国产欧美日韩精品一区| 欧美高清dvd| 成人av电影在线播放| 青青草97国产精品免费观看无弹窗版 | 在线观看免费亚洲| 国产福利一区在线观看| 五月天激情小说综合| 国产精品毛片久久久久久久| 欧美一卡二卡三卡四卡| 91香蕉视频在线| 国产乱人伦偷精品视频免下载| 一区二区三区高清不卡| 欧美激情中文不卡| 欧美成人一区二区三区| 欧美日韩激情一区二区三区| 99久久精品国产精品久久| 国产原创一区二区| 日韩高清一区二区| 亚洲国产精品影院| 亚洲乱码一区二区三区在线观看| 亚洲国产精品高清| 久久综合资源网| 日韩免费观看2025年上映的电影| 亚洲高清在线精品| 久久蜜臀精品av| 777午夜精品免费视频| 色综合中文综合网| 欧美午夜宅男影院| 色婷婷亚洲一区二区三区| 国产成人综合在线播放| 久久精品国产精品亚洲红杏| 日韩激情一区二区| 秋霞午夜av一区二区三区| 亚洲精品大片www| 综合久久久久综合| 亚洲第一福利一区| 亚洲国产精品国自产拍av| 久久久久久久久久美女| 久久免费精品国产久精品久久久久| 日韩一级二级三级精品视频| 欧美高清激情brazzers| 日韩一区二区三区电影在线观看| 欧美日韩亚洲不卡| 欧美一区二区视频观看视频| 欧美疯狂做受xxxx富婆| 91精品中文字幕一区二区三区| 69久久夜色精品国产69蝌蚪网| 9191国产精品| 欧美本精品男人aⅴ天堂| 337p粉嫩大胆色噜噜噜噜亚洲 | 欧美男生操女生| 欧美老年两性高潮| 日韩一区二区电影在线| 久久嫩草精品久久久久| 国产欧美日韩亚州综合| 国产精品不卡一区二区三区| 国产精品国产a| 亚洲午夜精品一区二区三区他趣| 天天综合网天天综合色| 国产毛片一区二区| av在线综合网| 欧美日本在线一区| 精品国产电影一区二区| 国产精品美女久久久久久2018| 亚洲欧美激情插| 肉肉av福利一精品导航| 国产精品一区二区久久不卡| 91美女片黄在线观看| 5566中文字幕一区二区电影| 久久久国产精华| 一区二区三区欧美| 久久国产精品无码网站| 99精品热视频| 在线播放91灌醉迷j高跟美女 | 久久成人免费电影| 成人一区二区三区在线观看| 欧美影院精品一区| 精品久久久久久综合日本欧美| 中文字幕欧美一| 日本午夜精品视频在线观看| 成人深夜在线观看| 666欧美在线视频| 亚洲丝袜自拍清纯另类| 久久成人久久鬼色| 欧美综合在线视频| 国产偷v国产偷v亚洲高清| 午夜久久福利影院| 不卡一区在线观看| 日韩欧美亚洲另类制服综合在线| 中文字幕在线不卡一区二区三区| 美女在线观看视频一区二区| 91麻豆swag| 国产无一区二区| 美女看a上一区| 欧美亚洲自拍偷拍| 国产精品理论片在线观看| 久久精品久久99精品久久| 91国在线观看| 综合久久久久综合| 国产高清不卡二三区| 日韩精品专区在线影院观看| 亚洲国产精品一区二区久久恐怖片| 黄色资源网久久资源365| 欧美日韩精品系列| 亚洲男人的天堂av| 成人高清免费在线播放| 久久久精品日韩欧美| 蜜桃av噜噜一区| 91精品国产欧美一区二区成人| 亚洲愉拍自拍另类高清精品| 91在线视频官网| 国产精品久久久久久久第一福利 | 国内精品伊人久久久久影院对白| 欧美色电影在线| 亚洲黄色免费网站| 91久久奴性调教| 亚洲精品高清视频在线观看| 99久久精品国产毛片| 亚洲天天做日日做天天谢日日欢| 国产aⅴ综合色| 国产精品午夜电影| 成人av先锋影音| 18成人在线观看| 色域天天综合网| 亚洲三级电影全部在线观看高清| 91在线观看视频| 亚洲人精品一区|