--- /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 );
+}