// Copyright (c) 2003-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:
// f32\sfile\sf_ops.h
//
//
#ifndef SF_OPS_H
#define SF_OPS_H
#define MSG0(aType) ((TUint32)(TFsPluginRequest::aType))
#define MSG1(aType) ((TUint32)(TFsPluginRequest::aType) << 8)
#define MSG2(aType) ((TUint32)(TFsPluginRequest::aType) << 16)
#define MSG3(aType) ((TUint32)(TFsPluginRequest::aType) << 24)
static const TOperation OperationArray[EMaxClientOperations]=
{/* function Flags iInitialise iPostInitialise iDoRequestL iMessageArguments*/
{ EFsAddFileSystem, ESync, &TFsAddFileSystem::Initialise, NULL, &TFsAddFileSystem::DoRequestL },
{ EFsRemoveFileSystem, ESync, &TFsRemoveFileSystem::Initialise, NULL, &TFsRemoveFileSystem::DoRequestL },
{ EFsMountFileSystem, 0, &TFsMountFileSystem::Initialise, NULL, &TFsMountFileSystem::DoRequestL },
{ EFsNotifyChange, ESync, &TFsNotifyChange::Initialise, NULL, &TFsNotifyChange::DoRequestL },
{ EFsNotifyChangeCancel, ESync, &TFsNotifyChangeCancel::Initialise, NULL, &TFsNotifyChangeCancel::DoRequestL },
{ EFsDriveList, ESync, &TFsDriveList::Initialise, NULL, &TFsDriveList::DoRequestL },
{ EFsDrive, ESync, &TFsDrive::Initialise, NULL, &TFsDrive::DoRequestL },
{ EFsVolume, 0, &TFsVolume::Initialise, NULL, &TFsVolume::DoRequestL },
{ EFsSetVolume, 0, &TFsSetVolume::Initialise, NULL, &TFsSetVolume::DoRequestL },
{ EFsSubst, ESync, &TFsSubst::Initialise, NULL, &TFsSubst::DoRequestL },
{ EFsSetSubst, ESync | EParseSrc, &TFsSetSubst::Initialise, NULL, &TFsSetSubst::DoRequestL },
{ EFsRealName, ESync | EParseSrc, &TFsRealName::Initialise, NULL, &TFsRealName::DoRequestL },
{ EFsDefaultPath, ESync, &TFsDefaultPath::Initialise, NULL, &TFsDefaultPath::DoRequestL },
{ EFsSetDefaultPath, ESync, &TFsSetDefaultPath::Initialise, NULL, &TFsSetDefaultPath::DoRequestL },
{ EFsSessionPath, ESync, &TFsSessionPath::Initialise, NULL, &TFsSessionPath::DoRequestL },
{ EFsSetSessionPath, ESync, &TFsSetSessionPath::Initialise, NULL, &TFsSetSessionPath::DoRequestL },
{ EFsMkDir, EParseSrc, &TFsMkDir::Initialise, NULL, &TFsMkDir::DoRequestL , MSG0(EName) | MSG1(EMode)},
{ EFsRmDir, EParseSrc, &TFsRmDir::Initialise, NULL, &TFsRmDir::DoRequestL , MSG0(EName)},
{ EFsParse, ESync, &TFsParse::Initialise, NULL, &TFsParse::DoRequestL },
{ EFsDelete, EParseSrc, &TFsDelete::Initialise, NULL, &TFsDelete::DoRequestL , MSG0(EName)},
{ EFsRename, EParseDst | EParseSrc, &TFsRename::Initialise, NULL, &TFsRename::DoRequestL , MSG0(EName) | MSG1(ENewName)},
{ EFsReplace, EParseDst | EParseSrc, &TFsReplace::Initialise, NULL, &TFsReplace::DoRequestL , MSG0(EName) | MSG1(ENewName)},
{ EFsEntry, EParseSrc, &TFsEntry::Initialise, NULL, &TFsEntry::DoRequestL , MSG0(EName) | MSG1(EEntry)},
{ EFsSetEntry, EParseSrc, &TFsSetEntry::Initialise, NULL, &TFsSetEntry::DoRequestL , MSG0(EName) | MSG1(ETime) | MSG2(ESetAtt) | MSG3(EClearAtt)},
{ EFsGetDriveName, ESync, &TFsGetDriveName::Initialise, NULL, &TFsGetDriveName::DoRequestL },
{ EFsSetDriveName, ESync, &TFsSetDriveName::Initialise, NULL, &TFsSetDriveName::DoRequestL },
{ EFsFormatSubClose, ESync, &TFsSubClose::Initialise, NULL, &TFsSubClose::DoRequestL },
{ EFsDirSubClose, ESync, &TFsSubClose::Initialise, NULL, &TFsSubClose::DoRequestL },
{ EFsFileSubClose, EFileShare, &TFsSubClose::Initialise, NULL, &TFsSubClose::DoRequestL },
{ EFsRawSubClose, ESync, &TFsSubClose::Initialise, NULL, &TFsSubClose::DoRequestL },
{ EFsFileOpen, EParseSrc, &TFsFileOpen::Initialise, NULL, &TFsFileOpen::DoRequestL , MSG0(EName) | MSG1(EMode)},
{ EFsFileCreate, EParseSrc, &TFsFileCreate::Initialise, NULL, &TFsFileCreate::DoRequestL , MSG0(EName) | MSG1(EMode)},
{ EFsFileReplace, EParseSrc, &TFsFileReplace::Initialise, NULL, &TFsFileReplace::DoRequestL , MSG0(EName) | MSG1(EMode)},
{ EFsFileTemp, EParseSrc, &TFsFileTemp::Initialise, NULL, &TFsFileTemp::DoRequestL , MSG0(EName) | MSG1(EMode) | MSG2(ENewName)},
{ EFsFileRead, EParseSrc | EFileShare, &TFsFileRead::Initialise, &TFsFileRead::PostInitialise, &TFsFileRead::DoRequestL , MSG0(EData) | MSG1(ELength) | MSG2(EPosition) },
{ EFsFileWrite, EParseSrc | EFileShare, &TFsFileWrite::Initialise, &TFsFileWrite::PostInitialise, &TFsFileWrite::DoRequestL , MSG0(EData) | MSG1(ELength) | MSG2(EPosition) },
{ EFsFileLock, EParseSrc | EFileShare, &TFsFileLock::Initialise, NULL, &TFsFileLock::DoRequestL , MSG0(EPosition) | MSG1(ELength)},
{ EFsFileUnLock, EParseSrc | EFileShare, &TFsFileUnlock::Initialise, NULL, &TFsFileUnlock::DoRequestL , MSG0(EPosition) | MSG1(ELength)},
{ EFsFileSeek, EParseSrc | EFileShare, &TFsFileSeek::Initialise, NULL, &TFsFileSeek::DoRequestL , MSG0(EPosition) | MSG1(EMode) | MSG2(ENewPosition)},
{ EFsFileFlush, EParseSrc | EFileShare, &TFsFileFlush::Initialise, NULL, &TFsFileFlush::DoRequestL },
{ EFsFileSize, EParseSrc | EFileShare, &TFsFileSize::Initialise, NULL, &TFsFileSize::DoRequestL , MSG0(ESize)},
{ EFsFileSetSize, EParseSrc | EFileShare, &TFsFileSetSize::Initialise, NULL, &TFsFileSetSize::DoRequestL , MSG0(ESize)},
{ EFsFileAtt, EParseSrc | EFileShare, &TFsFileAtt::Initialise, NULL, &TFsFileAtt::DoRequestL , MSG0(EAtt)},
{ EFsFileSetAtt, EParseSrc | EFileShare, &TFsFileSetAtt::Initialise, NULL, &TFsFileSetAtt::DoRequestL , MSG0(ESetAtt) | MSG1(EClearAtt)},
{ EFsFileModified, EParseSrc | EFileShare, &TFsFileModified::Initialise, NULL, &TFsFileModified::DoRequestL , MSG0(ETime)},
{ EFsFileSetModified, EParseSrc | EFileShare, &TFsFileSetModified::Initialise, NULL, &TFsFileSetModified::DoRequestL , MSG0(ETime)},
{ EFsFileSet, EParseSrc | EFileShare, &TFsFileSet::Initialise, NULL, &TFsFileSet::DoRequestL , MSG0(ETime) | MSG1(ESetAtt) | MSG2(EClearAtt)},
{ EFsFileChangeMode, EParseSrc | EFileShare, &TFsFileChangeMode::Initialise, NULL, &TFsFileChangeMode::DoRequestL , MSG0(EMode)},
{ EFsFileRename, EParseDst | EParseSrc, &TFsFileRename::Initialise, NULL, &TFsFileRename::DoRequestL , MSG0(ENewName)},
{ EFsDirOpen, EParseSrc, &TFsDirOpen::Initialise, NULL, &TFsDirOpen::DoRequestL , MSG0(EName) | MSG1(EAttMask) | MSG2(EUid)},
{ EFsDirReadOne, 0, &TFsDirReadOne::Initialise, NULL, &TFsDirReadOne::DoRequestL , MSG0(EEntry)},
{ EFsDirReadPacked, 0, &TFsDirReadPacked::Initialise, NULL, &TFsDirReadPacked::DoRequestL , MSG0(EEntryArray)},
{ EFsFormatOpen, EParseSrc, &TFsFormatOpen::Initialise, NULL, &TFsFormatOpen::DoRequestL },
{ EFsFormatNext, EParseSrc, &TFsFormatNext::Initialise, NULL, &TFsFormatNext::DoRequestL },
{ EFsRawDiskOpen, 0, &TFsRawDiskOpen::Initialise, NULL, &TFsRawDiskOpen::DoRequestL },
{ EFsRawDiskRead, EParseSrc, &TFsRawDiskRead::Initialise, NULL, &TFsRawDiskRead::DoRequestL },
{ EFsRawDiskWrite, EParseSrc, &TFsRawDiskWrite::Initialise, NULL, &TFsRawDiskWrite::DoRequestL },
{ EFsResourceCountMarkStart, ESync, &TFsResourceCountMarkStart::Initialise, NULL, &TFsResourceCountMarkStart::DoRequestL },
{ EFsResourceCountMarkEnd, ESync, &TFsResourceCountMarkEnd::Initialise, NULL, &TFsResourceCountMarkEnd::DoRequestL },
{ EFsResourceCount, ESync, &TFsResourceCount::Initialise, NULL, &TFsResourceCount::DoRequestL },
{ EFsCheckDisk, EParseSrc, &TFsCheckDisk::Initialise, NULL, &TFsCheckDisk::DoRequestL },
{ EFsGetShortName, EParseSrc, &TFsGetShortName::Initialise, NULL, &TFsGetShortName::DoRequestL },
{ EFsGetLongName, EParseSrc, &TFsGetLongName::Initialise, NULL, &TFsGetLongName::DoRequestL },
{ EFsIsFileOpen, EParseSrc, &TFsIsFileOpen::Initialise, NULL, &TFsIsFileOpen::DoRequestL },
{ EFsListOpenFiles, ESync, &TFsListOpenFiles::Initialise, NULL, &TFsListOpenFiles::DoRequestL },
{ EFsGetNotifyUser, ESync, &TFsGetNotifyUser::Initialise, NULL, &TFsGetNotifyUser::DoRequestL },
{ EFsSetNotifyUser, ESync, &TFsSetNotifyUser::Initialise, NULL, &TFsSetNotifyUser::DoRequestL },
{ EFsIsFileInRom, EParseSrc, &TFsIsFileInRom::Initialise, NULL, &TFsIsFileInRom::DoRequestL },
{ EFsIsValidName, ESync, &TFsIsValidName::Initialise, NULL, &TFsIsValidName::DoRequestL },
{ EFsDebugFunction, ESync, &TFsDebugFunc::Initialise, NULL, &TFsDebugFunc::DoRequestL },
{ EFsReadFileSection, EParseSrc, &TFsReadFileSection::Initialise, NULL, &TFsReadFileSection::DoRequestL , MSG0(EData) | MSG1(EName) | MSG2(EPosition) | MSG3(ELength)},
{ EFsNotifyChangeEx, ESync | EParseSrc, &TFsNotifyChangeEx::Initialise, NULL, &TFsNotifyChangeEx::DoRequestL },
{ EFsNotifyChangeCancelEx, ESync, &TFsNotifyChangeCancelEx::Initialise, NULL, &TFsNotifyChangeCancelEx::DoRequestL },
{ EFsDismountFileSystem, 0, &TFsDismountFileSystem::Initialise, NULL, &TFsDismountFileSystem::DoRequestL },
{ EFsFileSystemName, ESync, &TFsFileSystemName::Initialise, NULL, &TFsFileSystemName::DoRequestL },
{ EFsScanDrive, EParseSrc, &TFsScanDrive::Initialise, NULL, &TFsScanDrive::DoRequestL },
{ EFsControlIo, 0, &TFsControlIo::Initialise, NULL, &TFsControlIo::DoRequestL },
{ EFsLockDrive, 0, &TFsLockDrive::Initialise, NULL, &TFsLockDrive::DoRequestL },
{ EFsUnlockDrive, 0, &TFsUnlockDrive::Initialise, NULL, &TFsUnlockDrive::DoRequestL },
{ EFsClearPassword, 0, &TFsClearPassword::Initialise, NULL, &TFsClearPassword::DoRequestL },
{ EFsNotifyDiskSpace, 0, &TFsNotifyDiskSpace::Initialise, NULL, &TFsNotifyDiskSpace::DoRequestL },
{ EFsNotifyDiskSpaceCancel, ESync, &TFsNotifyDiskSpaceCancel::Initialise, NULL, &TFsNotifyDiskSpaceCancel::DoRequestL },
{ EFsFileDrive, EParseSrc | EFileShare, &TFsFileDrive::Initialise, NULL, &TFsFileDrive::DoRequestL },
{ EFsRemountDrive, 0, &TFsRemountDrive::Initialise, NULL, &TFsRemountDrive::DoRequestL },
{ EFsMountFileSystemScan, 0, &TFsMountFileSystemScan::Initialise, NULL, &TFsMountFileSystemScan::DoRequestL },
{ EFsSessionToPrivate, ESync, &TFsSessionToPrivate::Initialise, NULL, &TFsSessionToPrivate::DoRequestL },
{ EFsPrivatePath, ESync, &TFsPrivatePath::Initialise, NULL, &TFsPrivatePath::DoRequestL },
{ EFsCreatePrivatePath, 0, &TFsCreatePrivatePath::Initialise, NULL, &TFsCreatePrivatePath::DoRequestL },
{ EFsAddExtension, ESync, &TFsAddExtension::Initialise, NULL, &TFsAddExtension::DoRequestL },
{ EFsMountExtension, 0, &TFsMountExtension::Initialise, NULL, &TFsMountExtension::DoRequestL },
{ EFsDismountExtension, 0, &TFsDismountExtension::Initialise, NULL, &TFsDismountExtension::DoRequestL },
{ EFsRemoveExtension, ESync, &TFsRemoveExtension::Initialise, NULL, &TFsRemoveExtension::DoRequestL },
{ EFsExtensionName, 0, &TFsExtensionName::Initialise, NULL, &TFsExtensionName::DoRequestL },
{ EFsStartupInitComplete, ESync, &TFsStartupInitComplete::Initialise, NULL, &TFsStartupInitComplete::DoRequestL },
{ EFsSetLocalDriveMapping, ESync, &TFsSetLocalDriveMapping::Initialise, NULL, &TFsSetLocalDriveMapping::DoRequestL },
{ EFsFinaliseDrive, 0, &TFsFinaliseDrive::Initialise, NULL, &TFsFinaliseDrive::DoRequestL },
{ EFsFileDuplicate, 0 | EFileShare, &TFsFileDuplicate::Initialise, NULL, &TFsFileDuplicate::DoRequestL }, // Not done
{ EFsFileAdopt, ESync, &TFsFileAdopt::Initialise, NULL, &TFsFileAdopt::DoRequestL }, // Not done
{ EFsSwapFileSystem, ESync, &TFsSwapFileSystem::Initialise, NULL, &TFsSwapFileSystem::DoRequestL },
{ EFsErasePassword, 0, &TFsErasePassword::Initialise, NULL, &TFsErasePassword::DoRequestL },
{ EFsReserveDriveSpace, 0, &TFsReserveDriveSpace::Initialise, NULL, &TFsReserveDriveSpace::DoRequestL },
{ EFsGetReserveAccess, ESync, &TFsGetReserveAccess::Initialise, NULL, &TFsGetReserveAccess::DoRequestL },
{ EFsReleaseReserveAccess, ESync, &TFsReleaseReserveAccess::Initialise, NULL, &TFsReleaseReserveAccess::DoRequestL },
{ EFsFileName, ESync, &TFsFileName::Initialise, NULL, &TFsFileName::DoRequestL , MSG0(EName)},
{ EFsGetMediaSerialNumber, 0, &TFsGetMediaSerialNumber::Initialise, NULL, &TFsGetMediaSerialNumber::DoRequestL },
{ EFsFileFullName, ESync, &TFsFileFullName::Initialise, NULL, &TFsFileFullName::DoRequestL , MSG0(EName)}, // Wasn't in original list?
{ EFsAddPlugin, ESync, &TFsAddPlugin::Initialise, NULL, &TFsAddPlugin::DoRequestL },
{ EFsRemovePlugin, ESync, &TFsRemovePlugin::Initialise, NULL, &TFsRemovePlugin::DoRequestL },
{ EFsMountPlugin, ESync, &TFsMountPlugin::Initialise, NULL, &TFsMountPlugin::DoRequestL },
{ EFsDismountPlugin, 0, &TFsDismountPlugin::Initialise, NULL, &TFsDismountPlugin::DoRequestL },
{ EFsPluginName, ESync, &TFsPluginName::Initialise, NULL, &TFsPluginName::DoRequestL },
{ EFsPluginOpen, ESync | EParseSrc, &TFsPluginOpen::Initialise, NULL, &TFsPluginOpen::DoRequestL },
{ EFsPluginSubClose, ESync, &TFsSubClose::Initialise, NULL, &TFsSubClose::DoRequestL },
{ EFsPluginDoRequest, 0, &TFsPluginDoRequest::Initialise, NULL, &TFsPluginDoRequest::DoRequestL },
{ EFsPluginDoControl, 0, &TFsPluginDoControl::Initialise, NULL, &TFsPluginDoControl::DoRequestL },
{ EFsPluginDoCancel, 0, &TFsPluginDoCancel::Initialise, NULL, &TFsPluginDoCancel::DoRequestL },
{ EFsNotifyDismount, 0, &TFsNotifyDismount::Initialise, NULL, &TFsNotifyDismount::DoRequestL },
{ EFsNotifyDismountCancel, ESync, &TFsNotifyDismountCancel::Initialise, NULL, &TFsNotifyDismountCancel::DoRequestL },
{ EFsAllowDismount, 0, &TFsAllowDismount::Initialise, NULL, &TFsAllowDismount::DoRequestL },
{ EFsSetStartupConfiguration, ESync, &TFsSetStartupConfiguration::Initialise, NULL, &TFsSetStartupConfiguration::DoRequestL },
{ EFsFileReadCancel, ESync, &TFsFileReadCancel::Initialise, NULL, &TFsFileReadCancel::DoRequestL },
{ EFsAddCompositeMount, ESync, &TFsAddCompositeMount::Initialise, NULL, &TFsAddCompositeMount::DoRequestL },
{ EFsSetSessionFlags, ESync, &TFsSetSessionFlags::Initialise, NULL, &TFsSetSessionFlags::DoRequestL },
{ EFsSetSystemDrive, ESync, &TFsSetSystemDrive::Initialise, NULL, &TFsSetSystemDrive::DoRequestL },
{ EFsBlockMap, EParseSrc, &TFsBlockMap::Initialise, NULL, &TFsBlockMap::DoRequestL },
{ EFsUnclamp, 0, &TFsUnclamp::Initialise, NULL, &TFsUnclamp::DoRequestL },
{ EFsFileClamp, EParseSrc, &TFsFileClamp::Initialise, NULL, &TFsFileClamp::DoRequestL },
{ EFsQueryVolumeInfoExt, 0, &TFsQueryVolumeInfoExt::Initialise, NULL, &TFsQueryVolumeInfoExt::DoRequestL },
{ EFsInitialisePropertiesFile,0, &TFsInitialisePropertiesFile::Initialise, NULL, &TFsInitialisePropertiesFile::DoRequestL },
{ EFsFileWriteDirty, EFileShare, NULL, &TFsFileWriteDirty::PostInitialise, &TFsFileWrite::DoRequestL },
{ EFsSynchroniseDriveThread, 0, &TFsSynchroniseDriveThread::Initialise, NULL, &TFsSynchroniseDriveThread::DoRequestL },
{ EFsAddProxyDrive, ESync, &TFsAddProxyDrive::Initialise, NULL, &TFsAddProxyDrive::DoRequestL },
{ EFsRemoveProxyDrive, ESync, &TFsRemoveProxyDrive::Initialise, NULL, &TFsRemoveProxyDrive::DoRequestL },
{ EFsMountProxyDrive, 0, &TFsMountProxyDrive::Initialise, NULL, &TFsMountProxyDrive::DoRequestL },
{ EFsDismountProxyDrive, 0, &TFsDismountProxyDrive::Initialise, NULL, &TFsDismountProxyDrive::DoRequestL },
{ EFsNotificationOpen, ESync, &TFsNotificationOpen::Initialise, NULL, &TFsNotificationOpen::DoRequestL },
{ EFsNotificationBuffer, ESync, &TFsNotificationBuffer::Initialise, NULL, &TFsNotificationBuffer::DoRequestL },
{ EFsNotificationRequest, ESync, &TFsNotificationRequest::Initialise, NULL, &TFsNotificationRequest::DoRequestL },
{ EFsNotificationCancel, ESync, &TFsNotificationCancel::Initialise, NULL, &TFsNotificationCancel::DoRequestL },
{ EFsNotificationSubClose, ESync, &TFsNotificationSubClose::Initialise, NULL, &TFsNotificationSubClose::DoRequestL },
{ EFsNotificationAdd, ESync, &TFsNotificationAdd::Initialise, NULL, &TFsNotificationAdd::DoRequestL },
{ EFsNotificationRemove, ESync, &TFsNotificationRemove::Initialise, NULL, &TFsNotificationRemove::DoRequestL },
{ EFsLoadCodePage, 0, &TFsLoadCodePage::Initialise, NULL, &TFsLoadCodePage::DoRequestL },
};
#endif //SF_OPS_H