secureswitools/swisistools/source/sisxlibrary/utility_interface.h
changeset 0 ba25891c3a9e
child 24 5cc91383ab1e
--- /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 <iostream>
+#include "commontypes.h"
+
+#ifdef _WIN32
+#include <windows.h>
+#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 <errno.h>
+
+// 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__