diff -r 7fdc9a71d314 -r 8ad140f3dd41 hti/PC_Tools/HTIGateway/ServicePlugins/HtiMessages/HtiMessages.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hti/PC_Tools/HTIGateway/ServicePlugins/HtiMessages/HtiMessages.cpp Wed Oct 13 16:17:58 2010 +0300 @@ -0,0 +1,603 @@ +/* +* Copyright (c) 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: +*/ +#include "HtiMessagesH.h" +#include "HtiPlugin.h" +#include "HtiSoapHandlerInterface.h" + +//********************************************************************************** +// CONSTANTS +// +//********************************************************************************** + +// commands +const unsigned char CMD_ADD_SMS_TO_INDOX = 0x01; +const unsigned char CMD_ADD_MMS_TO_INDOX = 0x02; +const unsigned char CMD_ADD_EMAIL = 0x03; +const unsigned char CMD_ADD_IR_MESSAGE = 0x04; +const unsigned char CMD_ADD_BT_MESSAGE = 0x05; +const unsigned char CMD_ADD_SMART_MESSAGE = 0x06; +const unsigned char CMD_ADD_AUDIO_MESSAGE = 0x07; +const unsigned char CMD_DELETE_MESSAGE = 0x10; +const unsigned char CMD_DELETE_ALL_FROM_FOLDER = 0x11; +const unsigned char CMD_CREATE_MAILBOX = 0x20; +const unsigned char CMD_DELETE_MAILBOX = 0x21; +const unsigned char CMD_CREATE_ACCESS_POINT = 0x30; +const unsigned char CMD_DELETE_ACCESS_POINT = 0x31; +const unsigned char CMD_CREATE_DESTINATION = 0x32; +const unsigned char CMD_DELETE_DESTINATION = 0x33; +const unsigned char CMD_ADD_TO_DESTINATION = 0x34; +const unsigned char CMD_REMOVE_FROM_DESTINATION = 0x35; +const unsigned char CMD_SET_DEFAULT_SMS_CENTER = 0x40; +const unsigned char CMD_DELETE_SMS_CENTER = 0x41; +const unsigned char CMD_SET_SMS_SETTINGS = 0x42; +const unsigned char CMD_SET_MMS_SETTINGS = 0x45; + + +//********************************************************************************** +// SOAP FUNCTIONS +// +//********************************************************************************** + +//********************************************************************************** +// ns1__addSMS +//********************************************************************************** +int ns1__addSMS(struct soap* soap, + char *fromField, + char *description, + char *messageBody, + bool isNewFlag, + bool isUnreadFlag, + enum ns1__folder folder, + int &messageId) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_ADD_SMS_TO_INDOX ); + msg.AddStringWithLengthByteZero( fromField ); + msg.AddStringWithLengthByteZero( description ); + msg.AddStringWithLengthWordZero( messageBody ); + msg.AddByte( isNewFlag ); + msg.AddByte( isUnreadFlag ); + msg.AddByte( folder ); + if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) + return SOAP_FAULT; + + if ( msg.CheckMsgExactLen( 5 ) ) + return SOAP_FAULT; + + messageId = msg.GetInt( 1 ); + + return SOAP_OK; +} + +//********************************************************************************** +// ns1__addMMS +//********************************************************************************** +int ns1__addMMS(struct soap* soap, + char *fromField, + char *description, + char *messageBody, + char *attachmentPath, + bool isNewFlag, + bool isUnreadFlag, + enum ns1__folder folder, + int &messageId) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_ADD_MMS_TO_INDOX ); + msg.AddStringWithLengthByteZero( fromField ); + msg.AddStringWithLengthByteZero( description ); + msg.AddStringWithLengthWordZero( messageBody ); + msg.AddStringWithLengthByteZero( attachmentPath ); + msg.AddByte( isNewFlag ); + msg.AddByte( isUnreadFlag ); + msg.AddByte( folder ); + if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) + return SOAP_FAULT; + + if ( msg.CheckMsgExactLen( 5 ) ) + return SOAP_FAULT; + + messageId = msg.GetInt( 1 ); + + return SOAP_OK; +} + +//********************************************************************************** +// ns1__addEMail +//********************************************************************************** +int ns1__addEMail(struct soap* soap, + char *fromField, + char *description, + char *messageBody, + char *attachmentPath, + bool isNewFlag, + bool isUnreadFlag, + enum ns1__folder folder, + int &messageId) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_ADD_EMAIL ); + msg.AddStringWithLengthByteZero( fromField ); + msg.AddStringWithLengthByteZero( description ); + msg.AddStringWithLengthWordZero( messageBody ); + msg.AddStringWithLengthByteZero( attachmentPath ); + msg.AddByte( isNewFlag ); + msg.AddByte( isUnreadFlag ); + msg.AddByte( folder ); + if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) + return SOAP_FAULT; + + if ( msg.CheckMsgExactLen( 5 ) ) + return SOAP_FAULT; + + messageId = msg.GetInt( 1 ); + + return SOAP_OK; +} + +//********************************************************************************** +// ns1__addIRMessage +//********************************************************************************** +int ns1__addIRMessage(struct soap* soap, + char *fromField, + char *description, + char *attachmentPath, + bool isNewFlag, + bool isUnreadFlag, + enum ns1__folder folder, + int &messageId) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_ADD_IR_MESSAGE ); + msg.AddStringWithLengthByteZero( fromField ); + msg.AddStringWithLengthByteZero( description ); + msg.AddStringWithLengthByteZero( attachmentPath ); + msg.AddByte( isNewFlag ); + msg.AddByte( isUnreadFlag ); + msg.AddByte( folder ); + if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) + return SOAP_FAULT; + + if ( msg.CheckMsgExactLen( 5 ) ) + return SOAP_FAULT; + + messageId = msg.GetInt( 1 ); + + return SOAP_OK; +} + +//********************************************************************************** +// ns1__addBTMessage +//********************************************************************************** +int ns1__addBTMessage(struct soap* soap, + char *fromField, + char *description, + char *attachmentPath, + bool isNewFlag, + bool isUnreadFlag, + enum ns1__folder folder, + int &messageId) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_ADD_BT_MESSAGE ); + msg.AddStringWithLengthByteZero( fromField ); + msg.AddStringWithLengthByteZero( description ); + msg.AddStringWithLengthByteZero( attachmentPath ); + msg.AddByte( isNewFlag ); + msg.AddByte( isUnreadFlag ); + msg.AddByte( folder ); + if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) + return SOAP_FAULT; + + if ( msg.CheckMsgExactLen( 5 ) ) + return SOAP_FAULT; + + messageId = msg.GetInt( 1 ); + + return SOAP_OK; +} + +//********************************************************************************** +// ns1__addSmartMessage +//********************************************************************************** +int ns1__addSmartMessage(struct soap* soap, + char *fromField, + char *description, + char *messageBody, + bool isNewFlag, + bool isUnreadFlag, + enum ns1__folder folder, + int BIOmessageType, + int &messageId) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_ADD_SMART_MESSAGE ); + msg.AddStringWithLengthByteZero( fromField ); + msg.AddStringWithLengthByteZero( description ); + msg.AddStringWithLengthWordZero( messageBody ); + msg.AddByte( isNewFlag ); + msg.AddByte( isUnreadFlag ); + msg.AddByte( folder ); + msg.AddInt( BIOmessageType ); + if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) + return SOAP_FAULT; + + if ( msg.CheckMsgExactLen( 5 ) ) + return SOAP_FAULT; + + messageId = msg.GetInt( 1 ); + + return SOAP_OK; +} + +//********************************************************************************** +// ns1__addAudioMessage +//********************************************************************************** +int ns1__addAudioMessage(struct soap* soap, + char *fromField, + char *description, + char *attachmentPath, + bool isNewFlag, + bool isUnreadFlag, + enum ns1__folder folder, + int &messageId) +{ + if ( check_mandatory_string_parameter( soap, attachmentPath, "attachmentPath" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_ADD_AUDIO_MESSAGE ); + msg.AddStringWithLengthByteZero( fromField ); + msg.AddStringWithLengthByteZero( description ); + msg.AddStringWithLengthByteZero( attachmentPath ); + msg.AddByte( isNewFlag ); + msg.AddByte( isUnreadFlag ); + msg.AddByte( folder ); + if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) + return SOAP_FAULT; + + if ( msg.CheckMsgExactLen( 5 ) ) + return SOAP_FAULT; + + messageId = msg.GetInt( 1 ); + + return SOAP_OK; +} + +//********************************************************************************** +// ns1__deleteMessage +//********************************************************************************** +int ns1__deleteMessage(struct soap* soap, + int messageId, + struct ns1__deleteMessageResponse *out) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_MESSAGE ); + msg.AddInt( messageId ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__deleteMessage +//********************************************************************************** +int ns1__deleteAllFromFolder(struct soap* soap, + enum ns1__messageType type, + enum ns1__folder folder, + struct ns1__deleteAllFromFolderResponse *out) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_ALL_FROM_FOLDER ); + msg.AddByte( folder ); + msg.AddByte( type ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__createAccessPoint +//********************************************************************************** +int ns1__createAccessPoint(struct soap* soap, + enum ns1__bearerType bearer, + char *apName, + struct ArrayOfHtiAPSettingFields APSettings, + int &entryId) +{ + if ( check_mandatory_string_parameter( soap, apName, "apName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_CREATE_ACCESS_POINT ); + msg.AddByte( bearer ); + msg.AddStringWithLengthByte( apName ); + msg.AddByte( (BYTE) APSettings.__size ); + + // Loop through setting fields + for ( int i = 0; i < APSettings.__size; i++ ) + { + msg.AddByte( APSettings.__ptrHtiAPSettingField[i].fieldType ); + + // fieldData cannot be empty + if ( check_mandatory_string_parameter( soap, + APSettings.__ptrHtiAPSettingField[i].fieldData, + "HtiAPSettingField.fieldData" ) ) + return SOAP_FAULT; + + msg.AddStringWithLengthByte( APSettings.__ptrHtiAPSettingField[i].fieldData ); + } + + if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) + return SOAP_FAULT; + + if ( msg.CheckCommandCode( 0xFF ) || msg.CheckMsgExactLen( 5 ) ) + return SOAP_FAULT; + + entryId = msg.GetInt( 1 ); + + return SOAP_OK; +} + +//********************************************************************************** +// ns1__deleteAccessPoint +//********************************************************************************** +int ns1__deleteAccessPoint(struct soap* soap, + char *apName, + struct ns1__deleteAccessPointResponse *out) +{ + if ( check_mandatory_string_parameter( soap, apName, "apName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_ACCESS_POINT ); + msg.AddStringWithLengthByte( apName ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__createMailbox +//********************************************************************************** +int ns1__createMailbox(struct soap* soap, + enum ns1__mailboxType mailboxType, + char *mailboxName, + char *incomingServer, + char *incomingAccessPoint, + char *incomingUsername, + char *incomingPassword, + enum ns1__securitySetting incomingSecurity, + unsigned short incomingPort, + bool aPopSecureLogin, + char *outgoingServer, + char *outgoingAccessPoint, + char *outgoingUsername, + char *outgoingPassword, + enum ns1__securitySetting outgoingSecurity, + unsigned short outgoingPort, + char *ownMailAddress, + char *ownName, + enum ns1__sendOption sendOption, + enum ns1__copyToOwn copyToOwnAddress, + char *signatureText, + bool newMailIndicators, + enum ns1__retrievedParts retrievedParts, + unsigned short retrieveSizeLimit, + unsigned short emailsToRetrieve, + char *imap4FolderPath, + enum ns1__automaticUpdate automaticUpdate, + bool setAsDefault, + struct ns1__createMailboxResponse *out) +{ + // Check for mandatory stuff + if ( check_mandatory_string_parameter( soap, mailboxName, "mailboxName" ) ) + return SOAP_FAULT; + + if ( check_mandatory_string_parameter( soap, incomingServer, "incomingServer" ) ) + return SOAP_FAULT; + + if ( check_mandatory_string_parameter( soap, outgoingServer, "outgoingServer" ) ) + return SOAP_FAULT; + + if ( check_mandatory_string_parameter( soap, ownMailAddress, "ownMailAddress" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_CREATE_MAILBOX ); + msg.AddByte( mailboxType ); + msg.AddStringWithLengthByte( mailboxName ); + msg.AddStringWithLengthByte( incomingServer ); + msg.AddStringWithLengthByteZero( incomingAccessPoint ); + msg.AddStringWithLengthByteZero( incomingUsername ); + msg.AddStringWithLengthByteZero( incomingPassword ); + msg.AddByte( incomingSecurity ); + msg.AddWord( incomingPort ); + msg.AddByte( aPopSecureLogin ); + msg.AddStringWithLengthByte( outgoingServer ); + msg.AddStringWithLengthByteZero( outgoingAccessPoint ); + msg.AddStringWithLengthByteZero( outgoingUsername ); + msg.AddStringWithLengthByteZero( outgoingPassword ); + msg.AddByte( outgoingSecurity ); + msg.AddWord( outgoingPort ); + msg.AddStringWithLengthByte( ownMailAddress ); + msg.AddStringWithLengthByteZero( ownName ); + msg.AddByte( sendOption ); + msg.AddByte( copyToOwnAddress ); + msg.AddStringWithLengthWordZero( signatureText ); + msg.AddByte( newMailIndicators ); + msg.AddByte( retrievedParts ); + msg.AddWord( retrieveSizeLimit ); + msg.AddWord( emailsToRetrieve ); + msg.AddStringWithLengthByteZero( imap4FolderPath ); + msg.AddByte( automaticUpdate ); + msg.AddByte( setAsDefault ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__deleteMailbox +//********************************************************************************** +int ns1__deleteMailbox(struct soap* soap, + char *mailboxName, + struct ns1__deleteMailboxResponse *out) +{ + if ( check_mandatory_string_parameter( soap, mailboxName, "mailboxName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_MAILBOX ); + msg.AddStringWithLengthByte( mailboxName ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__setDefaultSmsCenter +//********************************************************************************** +int ns1__setDefaultSmsCenter(struct soap* soap, + char *smsCenterName, + char *smsCenterNumber, + struct ns1__setDefaultSmsCenterResponse *out) +{ + if ( check_mandatory_string_parameter( soap, smsCenterName, "smsCenterName" ) ) + return SOAP_FAULT; + if ( check_mandatory_string_parameter( soap, smsCenterNumber, "smsCenterNumber" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_SET_DEFAULT_SMS_CENTER ); + msg.AddStringWithLengthByte( smsCenterName ); + msg.AddStringWithLengthByte( smsCenterNumber ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__deleteSmsCenter +//********************************************************************************** +int ns1__deleteSmsCenter(struct soap* soap, + char *smsCenterName, + struct ns1__deleteSmsCenterResponse *out) +{ + if ( check_mandatory_string_parameter( soap, smsCenterName, "smsCenterName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_SMS_CENTER ); + msg.AddStringWithLengthByte( smsCenterName ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__setSmsSettings +//********************************************************************************** +int ns1__setSmsSettings(struct soap* soap, + enum ns1__smsCharacterSupport characterSupport, + bool requestDeliveryReport, + enum ns1__msgValidity validityPeriod, + enum ns1__smsMessageConversion messageConversion, + enum ns1__smsPreferredConnection preferredConnection, + bool replyViaSameCenter, + struct ns1__setSmsSettingsResponse *out) +{ + HtiMsgHelper msg( soap, HTI_UID, CMD_SET_SMS_SETTINGS ); + msg.AddByte( characterSupport ); + msg.AddByte( requestDeliveryReport ); + msg.AddByte( validityPeriod ); + msg.AddByte( messageConversion ); + msg.AddByte( preferredConnection ); + msg.AddByte( replyViaSameCenter ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__setMmsSettings +//********************************************************************************** +int ns1__setMmsSettings(struct soap* soap, + char *accessPointName, + enum ns1__mmsCreationMode creationMode, + enum ns1__mmsImageSize imageSize, + enum ns1__mmsReception reception, + bool receiveAnonymous, + bool receiveAdvertisements, + bool requestDeliveryReports, + bool sendDeliveryReports, + enum ns1__msgValidity validityPeriod, + struct ns1__setMmsSettingsResponse *out) +{ + if ( check_mandatory_string_parameter( soap, accessPointName, "accessPointName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_SET_MMS_SETTINGS ); + msg.AddStringWithLengthByte( accessPointName ); + msg.AddByte( creationMode ); + msg.AddByte( imageSize ); + msg.AddByte( reception ); + msg.AddByte( receiveAnonymous ); + msg.AddByte( receiveAdvertisements ); + msg.AddByte( requestDeliveryReports ); + msg.AddByte( sendDeliveryReports ); + msg.AddByte( validityPeriod ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__createDestination +//********************************************************************************** +int ns1__createDestination(struct soap* soap, + char *destinationName, + struct ns1__createDestinationResponse *out) +{ + if ( check_mandatory_string_parameter( soap, destinationName, "destinationName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_CREATE_DESTINATION ); + msg.AddStringWithLengthByte( destinationName ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__deleteDestination +//********************************************************************************** +int ns1__deleteDestination(struct soap* soap, + char *destinationName, + struct ns1__deleteDestinationResponse *out) +{ + if ( check_mandatory_string_parameter( soap, destinationName, "destinationName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_DESTINATION ); + msg.AddStringWithLengthByte( destinationName ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__addToDestination +//********************************************************************************** +int ns1__addToDestination(struct soap* soap, + char *accessPointName, + char *destinationName, + struct ns1__addToDestinationResponse *out) +{ + if ( check_mandatory_string_parameter( soap, accessPointName, "accessPointName" ) ) + return SOAP_FAULT; + + if ( check_mandatory_string_parameter( soap, destinationName, "destinationName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_ADD_TO_DESTINATION ); + msg.AddStringWithLengthByte( accessPointName ); + msg.AddStringWithLengthByte( destinationName ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +} + +//********************************************************************************** +// ns1__removeFromDestination +//********************************************************************************** +int ns1__removeFromDestination(struct soap* soap, + char *accessPointName, + char *destinationName, + struct ns1__removeFromDestinationResponse *out) +{ + if ( check_mandatory_string_parameter( soap, accessPointName, "accessPointName" ) ) + return SOAP_FAULT; + + if ( check_mandatory_string_parameter( soap, destinationName, "destinationName" ) ) + return SOAP_FAULT; + + HtiMsgHelper msg( soap, HTI_UID, CMD_REMOVE_FROM_DESTINATION ); + msg.AddStringWithLengthByte( accessPointName ); + msg.AddStringWithLengthByte( destinationName ); + return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); +}