diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/source/sisxlibrary/utility_interface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/sisxlibrary/utility_interface.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,203 @@ +/* +* Copyright (c) 2007-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: +* Note: This file may contain code to generate corrupt files for test purposes. +* Such code is excluded from production builds by use of compiler defines; +* it is recommended that such code should be removed if this code is ever published publicly. +* more utility functions. +* +*/ + + +/** + @file + @internalComponent + @released +*/ + +#ifndef __UTILITY_INTERFACE_H__ +#define __UTILITY_INTERFACE_H__ + +#include +#include "commontypes.h" + +#ifdef _WIN32 +#include +#endif // _WIN32 + +// common interface for Windows and Linux + +wchar_t** CommandLineArgs(int &argc , char *argv[]); + +void cleanup(int argc, wchar_t **argv); + +int CompareTwoString(wchar_t* string ,wchar_t* option); + +int CompareNString(wchar_t* string ,wchar_t* option , int len); + +TUint64 GetSizeOfFile(HANDLE hFile); + + +char* GetTempFile(); + +void TransferFileData(const wchar_t *Fromfile , char* Tofile); + +void* MakeSISOpenFile(const wchar_t *pszFilename, unsigned long dwAccessMode, unsigned long dwCreateFlags); + +int MakeSISDeleteFile(const wchar_t *pszFilename); + +// Converts a relative path to an absolute path under Win95 and WinNT +int FullPath(wchar_t *pszAbsolutePath, const wchar_t *pszRelativePath, unsigned int maxLength); + +// skip unicode marker if present +bool UnicodeMarker(void* hfile); + +bool CreateDir(const wchar_t* aPathName); +int FileAttributes(const wchar_t* aFileName ); + +void WriteToFile(const std::wstring& aFileName, const TUint8* aFileData, int aFileLength); + +int GetErrorValue( void ); + +/** + * Converts wide char (unicode) string to multibyte string + * This interface is provided so that we can have different implementation + * in windows and linux machine. + * @param aSource string to be converted + * @param aSourceLen Source len. If this is -1 then it will calculate the length of the source. + * @param aTarget target location. + * @param aTargetLen Space in the target location. + * @param aCodePage Code page number (currently supported in windows only) + * @return Number of bytes that make up the converted part of multibyte sequence. + * If aTarget is NULL then the function will return the size needed to store + * the complete conversion of the source string. + */ +int ConvertWideCharToMultiByte(const wchar_t* aSource, int aSourceLen, char* aTarget, int aTargetLen, TUint32 aCodePage = 0); +/** + * Converts multibyte string to wide char (unicode) + * This interface is provided so that we can have different implementation + * in windows and linux machine. + * @param aSource string to be converted + * @param aSourceLen Source len. If this is -1 then it will calculate the length of the source. + * @param aTarget target location. + * @param aTargetLen Space in the target location. + * @param aCodePage Code page number (currently supported in windows only) + * @return Number of bytes that make up the converted part of widechar sequence. + * If aTarget is NULL then the function will return the size needed to store + * the complete conversion of the source string. + */ +int ConvertMultiByteToWideChar(const char* aSource, int aSourceLen, wchar_t* aTarget, int aTargetLen, TUint32 aCodePage = 0); + +// interface for only Linux + +#ifdef __TOOLS2_LINUX__ +#include + +// File attributes +const int FILE_ATTRIBUTE_READONLY = 0x00000001; +const int FILE_ATTRIBUTE_HIDDEN = 0x00000002; +const int FILE_ATTRIBUTE_SYSTEM = 0x00000004; +const int FILE_ATTRIBUTE_DIRECTORY = 0x00000010; +const int FILE_ATTRIBUTE_ARCHIVE = 0x00000020; +const int FILE_ATTRIBUTE_ENCRYPTED = 0x00000040; +const int FILE_ATTRIBUTE_COMPRESSED = 0x00000800; +const int FILE_ATTRIBUTE_OFFLINE = 0x00001000; + + +// File creation errors +const int ERROR_PATH_NOT_FOUND = ENOENT; +const int ERROR_ACCESS_DENIED = EACCES; +const int ERROR_ALREADY_EXISTS = EEXIST; +const int ERROR_INVALID_NAME = EFAULT; + +unsigned long GetFileAttributesW(const wchar_t *filename); + +int _wunlink(const wchar_t* wc); + +void* GetStdHandle(unsigned long handle); + +int GetTempPathW(unsigned int maxlen, const wchar_t *ptr); +// Implement WriteFile // Works in Linux +int WriteFile(void *hFile, const void *buffer, + unsigned long bytesToWrite, + unsigned long *bytesWritten, + void *overlap); + +// Implement SetFilePointer // Works in Linux +unsigned long SetFilePointer(void *hFile, + long distance, + long *highword, + unsigned long method); + +// Implement CloseHandle // Works in Linux +int CloseHandle(void *fd); + +// Implement GetFileSize in Linux +long int GetFileSize(void *hFile, unsigned long* HighWord); + +// Implement ReadFile in Linux +int ReadFile(void *hFile, void *buffer, unsigned long bytesToRead, + unsigned long *bytesRead, void *); + +// Implement RemoveDirectoryA in Linux +int RemoveDirectoryA(const char *a); + + +// Implement CreateFileA in Linux +void* CreateFileA(const char *filename, unsigned long access, unsigned long sharing, + void*, unsigned long creation, + unsigned long attributes, void*); + +// Implement CreateDirectoryA in Linux +int CreateDirectoryA(const char *pathname, void*); + +// Implement WriteConsole in Linux +void WriteConsole(void* handle,const void *pwNameEnt, unsigned long len, + unsigned long *nosOfByteWritten, void* reserved); + +// Wide character support of WriteConsole +void WriteConsoleW(void* handle,const void *pwNameEnt, unsigned long len, + unsigned long *nosOfByteWritten, void* reserved); + +// Permission changes of file +int _wchmod(const wchar_t *filename, unsigned long mod); + +// Get a current working directory +int _wgetcwd(const wchar_t *directory , unsigned long length); + +// Get a temporary file Name +int GetTempFileNameW(const wchar_t* tmpPath, const wchar_t* prefix, int unique, const wchar_t *filename ); + +// +int DeleteFileA(const char* filename); + +bool IsBadReadPtr(const void* pv, unsigned long ulSize); + +bool IsBadWritePtr(const void* pv, unsigned long ulSize); + +char* itoa( int value, char* result, int base ); + +#endif // __TOOLS2_LINUX__ + +#if 0 +inline std::ostream& operator<<(std::ostream& aStream, TUint64 aValue) + { + char buffer[20]; + sprintf(buffer,"%I64d", aValue); + aStream << buffer; + return aStream; + } +#endif + +#endif // __UTILITY_INTERFACE_H__