diff -r f5050f1da672 -r 04becd199f91 javacommons/fileutils/src/driveobservermessages.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javacommons/fileutils/src/driveobservermessages.h Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,204 @@ +/* +* Copyright (c) 2008 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: DriveObserverMessages +* +*/ + +#ifndef DRIVEOBSERVERMESSAGES_H +#define DRIVEOBSERVERMESSAGES_H + +#include "logger.h" +#include "comms.h" +#include "commsmessage.h" + +#include "driveutilities.h" + +using java::comms::CommsMessage; + +namespace java +{ +namespace fileutils +{ +const int DRIVEOBSERVER_MSG_SUBSCRIBE_EVENTS = 1; +const int DRIVEOBSERVER_MSG_UNSUBSCRIBE_EVENTS = 2; +const int DRIVEOBSERVER_MSG_DRIVE_CHANGED_EVENT = 3; +const int DRIVEOBSERVER_MSG_GETDRIVES_REQUEST = 4; +const int DRIVEOBSERVER_MSG_GETDRIVES_RESULT = 5; + +const int DRIVEOBSERER_GET_DRIVES_ALL = 1; +const int DRIVEOBSERER_GET_DRIVES_ACCESIBLE = 2; + +inline void setSubscribeParams(CommsMessage& aMessage, int moduleId) +{ + aMessage.setMessageId(DRIVEOBSERVER_MSG_SUBSCRIBE_EVENTS); + aMessage.setModuleId(java::comms::PLUGIN_ID_DRIVE_OBSERVER_NATIVE_C); + aMessage << moduleId; +} +inline void getSubscribeParams(CommsMessage& aMessage, int& moduleId) +{ + if (aMessage.getMessageId() == DRIVEOBSERVER_MSG_SUBSCRIBE_EVENTS) + { + aMessage >> moduleId; + } + else + { + moduleId = 0; + } +} + +inline void setUnsubscribeMessage(CommsMessage& aMessage, int moduleId) +{ + aMessage.setMessageId(DRIVEOBSERVER_MSG_UNSUBSCRIBE_EVENTS); + aMessage.setModuleId(java::comms::PLUGIN_ID_DRIVE_OBSERVER_NATIVE_C); + aMessage << moduleId; +} + +inline void getUnsubscribeParams(CommsMessage& aMessage, int& moduleId) +{ + if (aMessage.getMessageId() == DRIVEOBSERVER_MSG_UNSUBSCRIBE_EVENTS) + { + aMessage >> moduleId; + } + else + { + ELOG2(EJavaFile, "wrong messageId was %d expecting %d", + aMessage.getMessageId(), DRIVEOBSERVER_MSG_UNSUBSCRIBE_EVENTS); + moduleId = 0; + } +} + +inline void appendDriveInfo(CommsMessage& aMessage, const driveInfo& aDriveInfo) +{ + aMessage << aDriveInfo.iRootPath; + aMessage << (aDriveInfo.iIsPresent ? 1 : 0); + aMessage << (aDriveInfo.iIsRemovable ? 1 : 0); + aMessage << (aDriveInfo.iIsLocal ? 1 : 0); + aMessage << (aDriveInfo.iIsReadOnly ? 1 : 0); + aMessage << (int) aDriveInfo.iId; + aMessage << (aDriveInfo.iIsExternallyMountable ? 1 : 0); +} + +inline void extractDriveInfo(CommsMessage& aMessage, driveInfo& aDriveInfo) +{ + aMessage >> aDriveInfo.iRootPath; + + int tempInt = 0; + aMessage >> tempInt; + aDriveInfo.iIsPresent = (tempInt == 1 ? true : false); + + aMessage >> tempInt; + aDriveInfo.iIsRemovable = (tempInt == 1 ? true : false); + + aMessage >> tempInt; + aDriveInfo.iIsLocal = (tempInt == 1 ? true : false); + + aMessage >> tempInt; + aDriveInfo.iIsReadOnly = (tempInt == 1 ? true : false); + + aMessage >> tempInt; + aDriveInfo.iId = tempInt; + aMessage >> tempInt; + aDriveInfo.iIsExternallyMountable = (tempInt == 1 ? true : false); +} + +inline void setDriveChangedParams(CommsMessage& aMessage, + int aReceiver, + int aModuleId, + int aOperation, + const driveInfo& aDriveInfo) +{ + aMessage.setMessageId(DRIVEOBSERVER_MSG_DRIVE_CHANGED_EVENT); + aMessage.setReceiver(aReceiver); + aMessage.setModuleId(aModuleId); + aMessage << aOperation; + appendDriveInfo(aMessage, aDriveInfo); +} + +inline void getDriveChangedParams(CommsMessage& aMessage, int& aOperation, + driveInfo& aDriveInfo) +{ + if (aMessage.getMessageId() == DRIVEOBSERVER_MSG_DRIVE_CHANGED_EVENT) + { + aMessage >> aOperation; + extractDriveInfo(aMessage, aDriveInfo); + } + else + { + ELOG2(EJavaFile, "wrong messageId was %d expecting %d", + aMessage.getMessageId(), DRIVEOBSERVER_MSG_DRIVE_CHANGED_EVENT); + } +} + +inline void setGetDrivesParams(CommsMessage& aMessage, const int& aDriveTypes) +{ + aMessage.setMessageId(DRIVEOBSERVER_MSG_GETDRIVES_REQUEST); + aMessage.setModuleId(java::comms::PLUGIN_ID_DRIVE_OBSERVER_NATIVE_C); + aMessage << aDriveTypes; +} + +inline void getGetDrivesParams(CommsMessage& aMessage, int& aDriveTypes) +{ + if (aMessage.getMessageId() == DRIVEOBSERVER_MSG_GETDRIVES_REQUEST) + { + aMessage >> aDriveTypes; + } + else + { + ELOG2(EJavaFile, "wrong messageId was %d expecting %d", + aMessage.getMessageId(), DRIVEOBSERVER_MSG_GETDRIVES_REQUEST); + } +} + +inline void setGetDrivesResultParams(CommsMessage& aMessage, + const driveInfos& aDriveInfos) +{ + aMessage.setMessageId(DRIVEOBSERVER_MSG_GETDRIVES_RESULT); + aMessage.setModuleId(java::comms::PLUGIN_ID_DRIVE_OBSERVER_NATIVE_C); + int numOfDrives = aDriveInfos.size(); + aMessage << numOfDrives; + for (int i = 0 ; i < numOfDrives ; i++) + { + appendDriveInfo(aMessage, aDriveInfos[i]); + } +} + +inline void getGetDrivesResultParams(CommsMessage& aMessage, + driveInfos& aDriveInfos) +{ + aDriveInfos.clear(); + + if (aMessage.getMessageId() == DRIVEOBSERVER_MSG_GETDRIVES_RESULT) + { + int numOfDrives = 0; + aMessage >> numOfDrives; + if (numOfDrives > 0) + { + driveInfo di; + for (int i = 0 ; i < numOfDrives ; i++) + { + extractDriveInfo(aMessage, di); + aDriveInfos.push_back(di); + } + } + } + else + { + ELOG2(EJavaFile, "wrong messageId was %d expecting %d", + aMessage.getMessageId(), DRIVEOBSERVER_MSG_GETDRIVES_RESULT); + } +} + +} // namespace fileutils +} // namespace java +#endif // DRIVEOBSERVERMESSAGES_H