diff -r c7c26511138f -r 360bd6b35136 imgtools/imglib/memmap/source/memmaputils.cpp --- a/imgtools/imglib/memmap/source/memmaputils.cpp Wed Jun 16 16:51:40 2010 +0300 +++ b/imgtools/imglib/memmap/source/memmaputils.cpp Wed Jun 23 16:56:47 2010 +0800 @@ -1,237 +1,237 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include "memmaputils.h" - -/** -Constructor: MemmapUtils class -Initilize the parameters to data members. - -@internalComponent -@released -*/ -MemmapUtils::MemmapUtils( ) -: iHFile(0) -{ -#ifdef WIN32 - iHMMFile = 0; -#endif -} - - -/** -Destructor: MemmapUtils class -Deallocates the memory for data members - -@internalComponent -@released -*/ -MemmapUtils::~MemmapUtils( ) -{ - CloseMapFile(); - - DeleteMapFile(); -} - -/** -OpenMemMapPointer: Opens the memory map pointer - -@internalComponent -@released - -@param aOffset - Starting offset of the memory map -@param aSize - Size of the memory map -*/ -void* MemmapUtils::OpenMemMapPointer(unsigned long aOffset, unsigned long aSize) -{ -#ifdef WIN32 - // Create map view pointer - return (void*)MapViewOfFile(iHMMFile, FILE_MAP_ALL_ACCESS, 0, aOffset, aSize); -#else - return KStatFalse; -#endif -} - -/** -CloseMemMapPointer: Closes the memory map pointer - -@internalComponent -@released - -@param aData - Memory map pointer -@param aSize - Size of the memory map -*/ -int MemmapUtils::CloseMemMapPointer(void* aData, unsigned long aSize) -{ - unsigned long statusFlg = KStatFalse; - - if(aData && iHFile) - { -#ifdef WIN32 - statusFlg = FlushViewOfFile(aData, aSize); - statusFlg &= FlushFileBuffers((HANDLE)_get_osfhandle(iHFile)); - statusFlg &= UnmapViewOfFile(aData); -#endif - } - - if(statusFlg == (unsigned long)KStatFalse) - { - return KStatFalse; - } - - return KStatTrue; -} - -/** -OpenMapFile: Opens the file for memory mapping - -@internalComponent -@released -*/ -int MemmapUtils::OpenMapFile() -{ - GetMapFileName(iMapFileName); - - if(iMapFileName.empty()) - { - return KStatFalse; - } - -#ifdef WIN32 - iHFile = open((const char*)iMapFileName.data(), (_O_CREAT | _O_BINARY | _O_RDWR)); -#endif - - if((iHFile == (-1)) || (!iHFile)) - { - Print(EAlways, "Cannot open the memory map file %s", (char*)iMapFileName.data()); - iHFile = 0; - - return KStatFalse; - } - - return KStatTrue; -} - -/** -IsMapFileOpen: Returns the open status of the memory map file - -@internalComponent -@released -*/ -int MemmapUtils::IsMapFileOpen() -{ - return (iHFile) ? KStatTrue : KStatFalse; -} - -/** -CloseMapFile: Closes the file for memory mapping - -@internalComponent -@released -*/ -void MemmapUtils::CloseMapFile() -{ - if(iHFile) - { -#ifdef WIN32 - close(iHFile); -#endif - iHFile = 0; - } -} - -/** -DeleteMapFile: Deletes the file for memory mapping - -@internalComponent -@released -*/ -void MemmapUtils::DeleteMapFile() -{ -#ifdef WIN32 - unlink((char*)iMapFileName.data()); -#endif -} - -/** -CreateFileMapObject: Creates the map file object - -@internalComponent -@released - -@param aSize - Size of the memory map -*/ -int MemmapUtils::CreateFileMapObject(unsigned long aSize) -{ -#ifdef WIN32 - // Create memory map object for the given size of the file - iHMMFile = CreateFileMapping((HANDLE)_get_osfhandle(iHFile), NULL, - PAGE_READWRITE, 0, aSize, NULL); - - if(!iHMMFile || (iHMMFile == INVALID_HANDLE_VALUE)) - { - return KStatFalse; - } -#endif - - return KStatTrue; -} - -/** -CloseFileMapObject: Closes the map file object - -@internalComponent -@released -*/ -void MemmapUtils::CloseFileMapObject() -{ -#ifdef WIN32 - if(iHMMFile) - { - CloseHandle(iHMMFile); - iHMMFile = 0; - } -#endif -} - -/** -GetMapFileName: Generates a temporary file name - -@internalComponent -@released - -@param aFile - Returns the name of the temporary file -*/ -void MemmapUtils::GetMapFileName(String& aFile) -{ - char *fileName = 0; - -#ifdef WIN32 - fileName = new char[MAX_PATH]; - - if(fileName) - GetTempFileName(".", "MMAP", 0, fileName); - - aFile.assign(fileName); -#endif - - if(fileName) - delete[] fileName; - -} - +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include "memmaputils.h" + +/** +Constructor: MemmapUtils class +Initilize the parameters to data members. + +@internalComponent +@released +*/ +MemmapUtils::MemmapUtils( ) +: iHFile(0) +{ +#ifdef WIN32 + iHMMFile = 0; +#endif +} + + +/** +Destructor: MemmapUtils class +Deallocates the memory for data members + +@internalComponent +@released +*/ +MemmapUtils::~MemmapUtils( ) +{ + CloseMapFile(); + + DeleteMapFile(); +} + +/** +OpenMemMapPointer: Opens the memory map pointer + +@internalComponent +@released + +@param aOffset - Starting offset of the memory map +@param aSize - Size of the memory map +*/ +void* MemmapUtils::OpenMemMapPointer(unsigned long aOffset, unsigned long aSize) +{ +#ifdef WIN32 + // Create map view pointer + return (void*)MapViewOfFile(iHMMFile, FILE_MAP_ALL_ACCESS, 0, aOffset, aSize); +#else + return KStatFalse; +#endif +} + +/** +CloseMemMapPointer: Closes the memory map pointer + +@internalComponent +@released + +@param aData - Memory map pointer +@param aSize - Size of the memory map +*/ +int MemmapUtils::CloseMemMapPointer(void* aData, unsigned long aSize) +{ + unsigned long statusFlg = KStatFalse; + + if(aData && iHFile) + { +#ifdef WIN32 + statusFlg = FlushViewOfFile(aData, aSize); + statusFlg &= FlushFileBuffers((HANDLE)_get_osfhandle(iHFile)); + statusFlg &= UnmapViewOfFile(aData); +#endif + } + + if(statusFlg == (unsigned long)KStatFalse) + { + return KStatFalse; + } + + return KStatTrue; +} + +/** +OpenMapFile: Opens the file for memory mapping + +@internalComponent +@released +*/ +int MemmapUtils::OpenMapFile() +{ + GetMapFileName(iMapFileName); + + if(iMapFileName.empty()) + { + return KStatFalse; + } + +#ifdef WIN32 + iHFile = open((const char*)iMapFileName.data(), (_O_CREAT | _O_BINARY | _O_RDWR)); +#endif + + if((iHFile == (-1)) || (!iHFile)) + { + Print(EAlways, "Cannot open the memory map file %s", (char*)iMapFileName.data()); + iHFile = 0; + + return KStatFalse; + } + + return KStatTrue; +} + +/** +IsMapFileOpen: Returns the open status of the memory map file + +@internalComponent +@released +*/ +int MemmapUtils::IsMapFileOpen() +{ + return (iHFile) ? KStatTrue : KStatFalse; +} + +/** +CloseMapFile: Closes the file for memory mapping + +@internalComponent +@released +*/ +void MemmapUtils::CloseMapFile() +{ + if(iHFile) + { +#ifdef WIN32 + close(iHFile); +#endif + iHFile = 0; + } +} + +/** +DeleteMapFile: Deletes the file for memory mapping + +@internalComponent +@released +*/ +void MemmapUtils::DeleteMapFile() +{ +#ifdef WIN32 + unlink((char*)iMapFileName.data()); +#endif +} + +/** +CreateFileMapObject: Creates the map file object + +@internalComponent +@released + +@param aSize - Size of the memory map +*/ +int MemmapUtils::CreateFileMapObject(unsigned long aSize) +{ +#ifdef WIN32 + // Create memory map object for the given size of the file + iHMMFile = CreateFileMapping((HANDLE)_get_osfhandle(iHFile), NULL, + PAGE_READWRITE, 0, aSize, NULL); + + if(!iHMMFile || (iHMMFile == INVALID_HANDLE_VALUE)) + { + return KStatFalse; + } +#endif + + return KStatTrue; +} + +/** +CloseFileMapObject: Closes the map file object + +@internalComponent +@released +*/ +void MemmapUtils::CloseFileMapObject() +{ +#ifdef WIN32 + if(iHMMFile) + { + CloseHandle(iHMMFile); + iHMMFile = 0; + } +#endif +} + +/** +GetMapFileName: Generates a temporary file name + +@internalComponent +@released + +@param aFile - Returns the name of the temporary file +*/ +void MemmapUtils::GetMapFileName(string& aFile) +{ + char *fileName = 0; + +#ifdef WIN32 + fileName = new char[MAX_PATH]; + + if(fileName) + GetTempFileName(".", "MMAP", 0, fileName); + + aFile.assign(fileName); +#endif + + if(fileName) + delete[] fileName; + +} +