secureswitools/swianalysistoolkit/source/common/osinterface.h
author Simon Howkins <simonh@symbian.org>
Mon, 22 Nov 2010 12:04:39 +0000
branchRCL_3
changeset 84 e6c5e34cd9b9
parent 0 ba25891c3a9e
permissions -rw-r--r--
Adjusted to avoid exports, etc, from a top-level bld.inf

/*
* Copyright (c) 2005-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: 
*
*/


/**
 @file 
 @internalComponent 
*/

#ifndef	__OSINTERFACE_H__
#define	__OSINTERFACE_H__
#pragma warning(disable: 4786)

#include "symbiantypes.h"

#include <string>
#include <vector>
#include <tchar.h>
using namespace std;

#ifndef UNICODE
#undef _T
#undef _TCHAR
#define _T(S) S
#define _TCHAR char
#endif // UNICODE



/**
  * This class acts as an interface for different OS platform.This is used in order to support
  * portability between linux and windows platform.The current implementation supports windows 
  * platform.
  */

class OSInterface
{
public:

	/**
	  This method extracts all the files present within a specified directory.
	  @param	aRootDir	Reference of the directory from which the files are to be extracted.
	  @param	aExtension	Extension of the file to be extracted.
	  @return	string vector containing the files in the root directory (aRootDir) specified.
	 */

	static const std::vector<STRING> ExtractFilesFromDirectory(const STRING& aRootDir , const STRING& aExtension = _T("")) ;
	
	/**
	  This method which deletes the files of a particular extension present within a specified directory,
	  @param	aRootDir	Reference of the directory from which the files are to be deleted.
	  @param	aExtension	Extension of the file to be deleted.	
	 */

	static void DeleteFilesFromDirectory(const STRING& aRootDir , const STRING& aExtension);	

	/**
	  Checks whether the directory passed is  C: Based or not. Since the files within the C: based 
	  are numbered,check is made to see that the the string passed can be converted into integer .
	  @param	aFileName	Reference of the filename within the specified writable certstore to be verified.	
	  */
	static bool IsInteger(const STRING& aFileName) ;


	/**
	  Checks whether it is a valid directory .	
	  */

	static int CheckIfDirectory(const STRING& aName)  ;

	static int DeleteDirectory(STRING& aDirectory) ;

	/**
	  Reads the value from the key value pair specified in the section from an file.
	  @param	aSectionLabel	section name in the file whose key value pair is to be read.
	  @param	aRootLabel		The key whose value is to be read.
	  @param	aCertstoreFile	The file containing the section and key value pair.
	  @param	aBuf			To be populated with the value of the key.
	  */

	static void ReadPrivateProfile(const STRING& aSectionLabel , const STRING& aRootLabel , const STRING& aCertstoreFile , _TCHAR* aBuf);
};

#endif //__OSINTERFACE_H__