diff -r 3406c99bc375 -r 07b41fa8d1dd hti/PC_Tools/HTIGateway/ServicePlugins/HtiPIM/HtiPIM.cpp --- a/hti/PC_Tools/HTIGateway/ServicePlugins/HtiPIM/HtiPIM.cpp Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,413 +0,0 @@ -/* -* 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 "HtiPIMH.h" -#include "HtiPlugin.h" -#include "HtiSoapHandlerInterface.h" - -//********************************************************************************** -// CONSTANTS -// -//********************************************************************************** - -// commands -const unsigned char CMD_IMPORT_VCARD = 0x01; -const unsigned char CMD_IMPORT_VCALENDAR = 0x02; -const unsigned char CMD_DELETE_CONTACT_ENTRIES = 0x03; -const unsigned char CMD_DELETE_CALENDAR_ENTRIES = 0x04; -const unsigned char CMD_NOTEPAD_ADD_MEMO = 0x05; -const unsigned char CMD_NOTEPAD_ADD_MEMO_FROM_FILE = 0x06; -const unsigned char CMD_NOTEPAD_DELETE_ALL = 0x07; -const unsigned char CMD_SIM_CARD_INFORMATION = 0x10; -const unsigned char CMD_IMPORT_SIM_CONTACT = 0x11; -const unsigned char CMD_DELETE_SIM_CONTACT = 0x12; -const unsigned char CMD_CREATE_BOOKMARK = 0x1A; -const unsigned char CMD_DELETE_BOOKMARK = 0x1B; - - -//********************************************************************************** -// UTIL FUNCTIONS -// -//********************************************************************************** -//********************************************************************************** -// GetSoapDIMEAttachment -//********************************************************************************** -int GetSoapDIMEAttachment(struct soap* soap, - char* href, - void*& data, - int &dataLen ) -{ - struct soap_multipart *attachment; - for ( attachment = soap->dime.list; attachment; attachment = attachment->next ) - { - if( !strcmp( (*attachment).id, href ) ) - { - data = attachment->ptr, - dataLen = (int) (*attachment).size; - return SOAP_OK; - } - } - - soap->error = soap_receiver_fault_format(soap, "HtiGateway", - "Did not find DIME attachment \"%s\"", href); - return SOAP_FAULT; -} - -//********************************************************************************** -// SOAP FUNCTIONS -// -//********************************************************************************** -//********************************************************************************** -// ns1__import_vCard -//********************************************************************************** -int ns1__import_vCard(struct soap* soap, - char *vCard, - int &entryId) -{ - if(check_mandatory_string_parameter(soap, vCard, "vCard")) - return SOAP_FAULT; - - HtiMsgHelper msg( soap, HTI_UID, CMD_IMPORT_VCARD ); - msg.AddString( vCard ); - if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) - return SOAP_FAULT; - - if ( msg.CheckMsgExactLen( 5 ) || msg.CheckCommandCode( 0xFF ) ) - return SOAP_FAULT; - - entryId = msg.GetInt( 1 ); - - return SOAP_OK; -} - -//********************************************************************************** -// ns1__import_vCardDime -//********************************************************************************** -int ns1__import_vCardDime(struct soap* soap, - struct ns1__HtiSoapAttachment *vCardDimeAttachment, - int &entryId) -{ - if( check_mandatory_string_parameter( soap, vCardDimeAttachment->href, - "vCardDimeAttachment href" ) ) - return SOAP_FAULT; - - void* data = NULL; - int dataLen = 0; - if ( GetSoapDIMEAttachment( soap, vCardDimeAttachment->href, data, dataLen ) ) - return SOAP_FAULT; - - HtiMsgHelper msg( soap, HTI_UID, CMD_IMPORT_VCARD ); - msg.AddData( data, dataLen ); - if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) - return SOAP_FAULT; - - if ( msg.CheckMsgExactLen( 5 ) || msg.CheckCommandCode( 0xFF ) ) - return SOAP_FAULT; - - entryId = msg.GetInt( 1 ); - - return SOAP_OK; -} - -//********************************************************************************** -// ns1__import_vCalendar -//********************************************************************************** -int ns1__import_vCalendar(struct soap* soap, - char *vCal, - int &entryId) -{ - if(check_mandatory_string_parameter(soap, vCal, "vCalendar")) - return SOAP_FAULT; - - HtiMsgHelper msg( soap, HTI_UID, CMD_IMPORT_VCALENDAR ); - msg.AddString( vCal ); - if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) - return SOAP_FAULT; - - if ( msg.CheckMsgExactLen( 5 ) || msg.CheckCommandCode( 0xFF ) ) - return SOAP_FAULT; - - entryId = msg.GetInt( 1 ); - - return SOAP_OK; -} - -//********************************************************************************** -// ns1__import_vCalendarDime -//********************************************************************************** -int ns1__import_vCalendarDime(struct soap* soap, - struct ns1__HtiSoapAttachment *vCalendarDimeAttachment, - int &entryId) -{ - if(check_mandatory_string_parameter(soap, vCalendarDimeAttachment->href, - "vCalendarDimeAttachment href")) - return SOAP_FAULT; - - void* data = NULL; - int dataLen = 0; - if ( GetSoapDIMEAttachment( soap, vCalendarDimeAttachment->href, data, dataLen ) ) - return SOAP_FAULT; - - HtiMsgHelper msg( soap, HTI_UID, CMD_IMPORT_VCALENDAR ); - msg.AddData( data, dataLen ); - if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) - return SOAP_FAULT; - - if ( msg.CheckMsgExactLen( 5 ) || msg.CheckCommandCode( 0xFF ) ) - return SOAP_FAULT; - - entryId = msg.GetInt( 1 ); - - return SOAP_OK; -} - -//********************************************************************************** -// ns1__deleteContactEntry -//********************************************************************************** -int ns1__deleteContactEntry(struct soap* soap, - int entryId, - struct ns1__deleteContactEntryResponse *out) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_CONTACT_ENTRIES ); - msg.AddInt( entryId ); - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); -} - -//********************************************************************************** -// ns1__deleteAllContactEntries -//********************************************************************************** -int ns1__deleteAllContactEntries(struct soap* soap, - void *_, - struct ns1__deleteAllContactEntriesResponse *out) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_CONTACT_ENTRIES ); - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); -} - -//********************************************************************************** -// ns1__deleteCalendarEntry -//********************************************************************************** -int ns1__deleteCalendarEntry(struct soap* soap, - int entryId, - struct ns1__deleteCalendarEntryResponse *out) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_CALENDAR_ENTRIES ); - msg.AddInt( entryId ); - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); -} - -//********************************************************************************** -// ns1__deleteAllCalendarEntries -//********************************************************************************** -int ns1__deleteAllCalendarEntries(struct soap* soap, - void *_, - struct ns1__deleteAllCalendarEntriesResponse *out) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_CALENDAR_ENTRIES ); - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); -} - -//********************************************************************************** -// ns1__getSIMCardCaps -//********************************************************************************** -int ns1__getSIMCardCaps(struct soap* soap, - void *_, - struct ns1__getSIMCardCapsResponse &r) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_SIM_CARD_INFORMATION ); - if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) - return SOAP_FAULT; - - if ( msg.CheckCommandCode( 0xFF ) || msg.CheckMsgExactLen( 13 ) ) - return SOAP_FAULT; - - r._returnHtiSIMCardCaps.maxNumOfSecondNames = msg.GetByte( 1 ); - r._returnHtiSIMCardCaps.maxNumOfAdditionalNums = msg.GetByte( 2 ); - r._returnHtiSIMCardCaps.maxNumOfEmails = msg.GetByte( 3 ); - r._returnHtiSIMCardCaps.maxLengthOfName = msg.GetByte( 4 ); - r._returnHtiSIMCardCaps.maxLengthOfNumber = msg.GetByte( 5 ); - r._returnHtiSIMCardCaps.maxLengthOfSecondName = msg.GetByte( 6 ); - r._returnHtiSIMCardCaps.maxLengthOfAdditionalNum = msg.GetByte( 7 ); - r._returnHtiSIMCardCaps.maxLenghtOfEmail = msg.GetByte( 8 ); - r._returnHtiSIMCardCaps.totalSlots = msg.GetWord( 9 ); - r._returnHtiSIMCardCaps.usedSlots = msg.GetWord( 11 ); - - return SOAP_OK; -} - -//********************************************************************************** -// ns1__importSIMContact -//********************************************************************************** -int ns1__importSIMContact(struct soap* soap, - struct ArrayOfHtiSIMContactFields SIMContacts, - int &entryId) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_IMPORT_SIM_CONTACT ); - - // Only one byte for number of contacts - if ( SIMContacts.__size > 0xFF ) - { - soap->error = soap_receiver_fault( soap, "HtiGateway", - "Too many contacts" ); - return SOAP_FAULT; - } - msg.AddByte( (BYTE) SIMContacts.__size ); - - // Loop through contacts - for ( int i = 0; i < SIMContacts.__size; i++ ) - { - msg.AddByte( SIMContacts.__ptrHtiSIMContactField[i].fieldType ); - - // fieldData cannot be empty - if ( check_mandatory_string_parameter( soap, - SIMContacts.__ptrHtiSIMContactField[i].fieldData, - "HtiSIMContactField.fieldData" ) ) - return SOAP_FAULT; - - msg.AddStringWithLengthByte( SIMContacts.__ptrHtiSIMContactField[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__deleteSIMContact -//********************************************************************************** -int ns1__deleteSIMContact(struct soap* soap, - int entryId, - struct ns1__deleteSIMContactResponse *out) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_SIM_CONTACT ); - msg.AddInt( entryId ); - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); -} - -//********************************************************************************** -// ns1__deleteAllSIMContacts -//********************************************************************************** -int ns1__deleteAllSIMContacts(struct soap* soap, - void *_, - struct ns1__deleteAllSIMContactsResponse *out) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_SIM_CONTACT ); - // 60 second timeout maybe not enough(?) - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_60_SECONDS ); -} - -//********************************************************************************** -// ns1__notepadAddMemo -//********************************************************************************** -int ns1__notepadAddMemo(struct soap* soap, - char *text, - struct ns1__notepadAddMemoResponse *out) -{ - if( check_mandatory_string_parameter( soap, text, "text" ) ) - return SOAP_FAULT; - - HtiMsgHelper msg( soap, HTI_UID, CMD_NOTEPAD_ADD_MEMO ); - msg.AddString( text ); - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); -} -//********************************************************************************** -// ns1__notepadAddMemoFromFile -//********************************************************************************** -int ns1__notepadAddMemoFromFile(struct soap* soap, - char *filePath, - struct ns1__notepadAddMemoFromFileResponse *out) -{ - if( check_mandatory_string_parameter( soap, filePath, "filePath" ) ) - return SOAP_FAULT; - - HtiMsgHelper msg( soap, HTI_UID, CMD_NOTEPAD_ADD_MEMO_FROM_FILE ); - msg.AddString( filePath ); - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); -} - -//********************************************************************************** -// ns1__notepadDeleteAll -//********************************************************************************** -int ns1__notepadDeleteAll(struct soap* soap, - void *_, - struct ns1__notepadDeleteAllResponse *out) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_NOTEPAD_DELETE_ALL ); - return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ); -} - -//********************************************************************************** -// ns1__createBookmark -//********************************************************************************** -int ns1__createBookmark(struct soap* soap, - char *folderName, - char *bookmarkName, - char *url, - char *accessPointName, - char *userName, - char *password, - int &createdItemCount) -{ - if( check_mandatory_string_parameter( soap, bookmarkName, "bookmarkName" ) ) - return SOAP_FAULT; - if( check_mandatory_string_parameter( soap, url, "url" ) ) - return SOAP_FAULT; - - HtiMsgHelper msg( soap, HTI_UID, CMD_CREATE_BOOKMARK ); - msg.AddStringWithLengthByteZero( folderName ); - msg.AddStringWithLengthByte( bookmarkName ); - msg.AddStringWithLengthWordZero( url ); - msg.AddStringWithLengthByteZero( accessPointName ); - msg.AddStringWithLengthByteZero( userName ); - msg.AddStringWithLengthByteZero( password ); - - if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) - return SOAP_FAULT; - - if ( msg.CheckCommandCode( 0xFF ) || msg.CheckMsgExactLen( 2 ) ) - return SOAP_FAULT; - - createdItemCount = msg.GetByte( 1 ); - - return SOAP_OK; -} -//********************************************************************************** -// ns1__deleteBookmark -//********************************************************************************** -int ns1__deleteBookmark(struct soap* soap, - char *folderName, - char *bookmarkName, - int &deletedItemCount) -{ - HtiMsgHelper msg( soap, HTI_UID, CMD_DELETE_BOOKMARK ); - msg.AddStringWithLengthByteZero( folderName ); - msg.AddStringWithLengthByteZero( bookmarkName ); - - if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) ) - return SOAP_FAULT; - - if ( msg.CheckCommandCode( 0xFF ) || msg.CheckMsgExactLen( 2 ) ) - return SOAP_FAULT; - - deletedItemCount = msg.GetByte( 1 ); - - return SOAP_OK; -}