diff -r 000000000000 -r bde4ae8d615e os/ossrv/genericopenlibs/openenvcore/backend/inc/systemspecialfilercg.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/ossrv/genericopenlibs/openenvcore/backend/inc/systemspecialfilercg.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,168 @@ +/* +* 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 "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: Helper class to deal with special system files. +* +*/ + + + + +#ifndef SYSTEM_SPECIAL_FILE_RCG_H +#define SYSTEM_SPECIAL_FILE_RCG_H + +// INCLUDES +#include +#include +#include +#include + +#define KMaxEncDecBuf 9 + +// DATA TYPES + +enum TSpecialFileType + { + EFileGeneralError = -1, + EFileNotFound, + EFileTypeGeneral, // not a system specific special file + EFileTypeMkFifo, // temp file of mkfifo type + EFileTypeSymLink, // symbolic link + EFileTypeSocket, + EFileTypeMax // no enums beyond this. + }; + +struct SSpecialFileMagicHeader { + char iMagicBuffer[KMaxEncDecBuf]; + unsigned char iFileType; +}; + + +/* + * Encode the system special file magic header. + * @param aEncBuf Encoded buffer + * @param aFileType Type of file + * @return 0 for success, else -1 + */ +int _EncodeSystemSplFileMagicHeader( + struct SSpecialFileMagicHeader *aEncBuf, + TSpecialFileType aFileType); + +/* + * Try to retrieve file type from buffer. + * @param buf pointer to the contained buffer. + * @return File type. + * EFileTypeGeneral For normal file + * EFileTypeMkFifo For mkfifo + * EFileTypeSymLink For Symbolic link. + */ +TSpecialFileType _SystemSpecialFileBasedBuffer(const char *buf); + +/* + * Try to retrieve file type from file name (char*). + * @param aFullFileName pointer to the file name. + * @param anErrno Ref to the error no. + * @param aSession File server session. + * @return File type. + * EFileTypeGeneral For normal file + * EFileTypeMkFifo For mkfifo + * EFileTypeSymLink For Symbolic link. + */ +/* +TSpecialFileType _SystemSpecialFileBasedFilePath + (const char* aFullFileName, TInt& aErrno, RSessionBase& aSession);*/ + +/* + * Try to retrieve file type from file name (wchar_t*). + * @param aPathName pointer to the file name. + * @param anErrno Ref to the error no. + * @param aSession File server session. + * @return File type. + * EFileTypeGeneral For normal file + * EFileTypeMkFifo For mkfifo + * EFileTypeSymLink For Symbolic link. + */ +IMPORT_C TSpecialFileType _SystemSpecialFileBasedFilePath + (const wchar_t* aPathName, TInt& aErrno, RSessionBase& aSession); + +/* + * Create a system file. + * @param aFullFileName pointer to the file name. + * @param aData Pointer to the data to be writen within the new file + * @param aLen Length of the data. + * @param anErrno Ref to the error no. + * @param aSession File server session. + * @return 0 for success, else -1 + */ +int _CreateSysSplFile(const wchar_t *aFullFileName, + const char* aData, + const int aLen, + int& anErrno, + RSessionBase& aSession); + +/* + * delete a system file. + * @param aFullFileName pointer to the file name. + * @param aSession File server session. + * @return 0 for success, else -1 + */ +/* +TInt _DeleteSystemSpecialFileBasedFilePath + (const char* aFullFileName, RSessionBase& aSession);*/ + +/* + * delete a system file. (Wide char) + * @param aFullFileName pointer to the file name. + * @param aSession File server session. + * @return 0 for success, else -1 + */ +TInt _DeleteSystemSpecialFileBasedFilePath + (const wchar_t* aFullFileName, RSessionBase& aSession); + +/* + * Read a system file. + * @param aFullFileName pointer to the file name. + * @param aBuf Pointer to the buffer for read data + * @param aLen Length of the data. + * @param anErrno Ref to the error no. + * @param aSession File server session. + * @return number of bytes read on success, else -1 + */ +/* +IMPORT_C int _ReadSysSplFileL(const char *aFullFileName, + char* aBuf, + const int aLen, + int& anErrno, + RSessionBase& aSession);*/ + +/* + * Read a system file (wide char variant). + * @param aFullFileName pointer to the file name. + * @param aBuf Pointer to the buffer for read data + * @param aLen Length of the data. + * @param anErrno Ref to the error no. + * @param aSession File server session. + * @return number of bytes read on success, else -1 + */ +IMPORT_C int _ReadSysSplFile(const wchar_t *aFullFileName, + char* aBuf, + const int aLen, + int& anErrno, + RSessionBase& aSession); + + + +#endif // SYSTEM_SPECIAL_FILE_RCG_H + +// End of File +